【问题标题】:SQLite Aggregate Sum ValuesSQLite 聚合总和值
【发布时间】:2019-07-05 16:46:00
【问题描述】:

当我尝试汇总价格时,返回的值会被截断并截断重要的值。例如,当我使用 sum() 或 total() 来汇总价格时,它返回的不是 12,000.00,而是 12。

我同时使用了 sum() 和 total() 以及尝试将数字转换为浮点数。该列的类型为 REAL。

select "Extended Price" 
from ReqData 
where "PR ID" = 11111111 
group by "PR ID";

这将返回 12,000.00

select sum("Extended Price") 
from ReqData 
where "PR ID" = 11111111 
group by "PR ID";

这将返回 12。

DBeaver Output

【问题讨论】:

  • 我无法重现您的问题。在 DB Browser For SQLite 中,两个查询都返回 12000.0
  • 已添加快照图像。
  • 表中是否只有 1 行“PR ID”=11111111?
  • 是的,1 行加价 12,000.00
  • 看我的回答...

标签: sqlite dbeaver


【解决方案1】:

问题是您插入了列的值,例如:

12,000.00

这在 SQLite 中被识别为 TEXT,因为它包含逗号。
将值更改为:

12000

12000.00

当 TEXT 值用于执行算术运算(例如加法、减法甚至比较)时,SQLite 会尝试从起始字符开始将其转换为数字,如果这根本不可能,则返回 0
所以'12a' 将转换为12'abc' 将转换为0,所以在你的情况下'12,000.00' 将转换为12

【讨论】:

  • 啊,有道理,我感觉这是一个数据类型问题,但我不确定 SQLite 如何处理这些类型。谢谢!
猜你喜欢
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2011-05-21
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多