在以下查询中,1/2的答案始终为零,而应为0.5.你能告诉我如何将两个int列转换为float/double吗?
SELECT 1/2, total, sb_ondate, likes
FROM (
SELECT sb_ondate, COUNT(*) AS total,
STRFTIME("%w",sb_ondate) AS weekDay,
COUNT(CASE WHEN sb_reaction = 'like' THEN sb_id END) AS likes
FROM diet
GROUP BY weekDay) AS f;
Run Code Online (Sandbox Code Playgroud)
谢谢.
ber*_*nie 14
Cast两个除数中的一个为real:
SELECT 1 / CAST(2 AS REAL),...
Run Code Online (Sandbox Code Playgroud)
示例交互式Python会话:
>>> import sqlite3
>>> c = sqlite3.connect(':memory:')
>>> c.execute("create table t (a int,b int);")
<sqlite3.Cursor object at 0x7f9b0e9539d0>
>>> c.execute("insert into t values (1,2)")
<sqlite3.Cursor object at 0x7f9b0e953ad8>
>>> conn.execute("select a / cast(b as real) from t").fetchone()
(0.5,)
Run Code Online (Sandbox Code Playgroud)
添加.0到其中一个常量:
sqlite> select 1/2;
1/2
----------
0
sqlite> select 1.0/2;
1.0/2
----------
0.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13431 次 |
| 最近记录: |