1

谁能说出为什么这个选择返回 3.0 而不是 3.5:

SELECT coalesce(1.0*(7/2),0) as foo

这个返回 3:

SELECT coalesce(7/2,0) as foo

我只是想将 SUM 除以 COUNT 以找到平均值。如果我有结果,我需要它 0 如果 null 和 1 以 1 位小数四舍五入。

4

3 回答 3

4

嗯,7/2是整数1.0是数字,等等1.0*(7/2)==1.0 * 3 == 3.0

于 2012-08-23T20:20:13.273 回答
4

您需要执行以下操作:

SELECT COALESCE((1.0 * 7)/2, 0) AS foo;
于 2012-08-23T20:28:59.043 回答
0

这感觉更好:

select 7.0/2.0;
--------------------
 3.5000000000000000
于 2014-01-05T02:35:24.783 回答