有人可以说为什么这个选择返回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小数。
答案 0 :(得分:4)
好吧,7/2
is an integer,1.0
is numeric,以及1.0*(7/2)==1.0 * 3 == 3.0
。
答案 1 :(得分:4)
您需要执行以下操作:
SELECT COALESCE((1.0 * 7)/2, 0) AS foo;
答案 2 :(得分:0)
这感觉更好:
select 7.0/2.0;
--------------------
3.5000000000000000