在PostgreSQL和MySQL中使用SUM
聚合函数时,如果结果出现"不确定的小数"(比如NaN
或NULL
),通常是因为没有匹配的行,或者是因为有NULL
值在参与计算。
解决方法:
确保有匹配的行:
如果查询没有返回任何行,
SUM
将返回NULL
。确保你的WHERE子句正确,并且表中有数据匹配。处理
NULL
值:- 使用
COALESCE
函数来将NULL
转换为0或其他默认值。 - 使用
IFNULL
或ISNULL
(MySQL)来处理NULL
值。
- 使用
例子:
PostgreSQL:
MySQL:
这样做可以确保即使没有数据或有NULL
值,SUM
也会返回一个定值(本例中为0)。