postgresql合并

时间:2012-08-23 20:16:30

标签: postgresql

有人可以说为什么这个选择返回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小数。

3 个答案:

答案 0 :(得分:4)

好吧,7/2 is an integer1.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