SQLite 聚合总和值
SQLite Aggregate Sum Values
当我尝试汇总价格时,返回值被截断并截断了重要值。例如,当我使用 sum() 或 total() 来汇总价格时,而不是 12,000.00 它 returns 12.
我同时使用了 sum() 和 total() 并尝试将数字转换为浮点数。该列的类型为 REAL。
select "Extended Price"
from ReqData
where "PR ID" = 11111111
group by "PR ID";
这个returns 12,000.00
select sum("Extended Price")
from ReqData
where "PR ID" = 11111111
group by "PR ID";
这个returns12.
DBeaver Output
问题是您插入的列值如下:
12,000.00
SQLite 将其识别为 TEXT
,因为它包含逗号。
将值更改为:
12000
或
12000.00
当 TEXT 值用于执行加法、减法甚至比较等算术运算时,SQLite 会尝试从起始字符开始将其转换为数字,如果这根本不可能,它 returns 0
.
因此 '12a'
将转换为 12
,'abc'
将转换为 0
,因此在您的情况下 '12,000.00'
将转换为 12
。
当我尝试汇总价格时,返回值被截断并截断了重要值。例如,当我使用 sum() 或 total() 来汇总价格时,而不是 12,000.00 它 returns 12.
我同时使用了 sum() 和 total() 并尝试将数字转换为浮点数。该列的类型为 REAL。
select "Extended Price"
from ReqData
where "PR ID" = 11111111
group by "PR ID";
这个returns 12,000.00
select sum("Extended Price")
from ReqData
where "PR ID" = 11111111
group by "PR ID";
这个returns12.
DBeaver Output
问题是您插入的列值如下:
12,000.00
SQLite 将其识别为 TEXT
,因为它包含逗号。
将值更改为:
12000
或
12000.00
当 TEXT 值用于执行加法、减法甚至比较等算术运算时,SQLite 会尝试从起始字符开始将其转换为数字,如果这根本不可能,它 returns 0
.
因此 '12a'
将转换为 12
,'abc'
将转换为 0
,因此在您的情况下 '12,000.00'
将转换为 12
。