如何使用coalesce来获取总和

时间:2017-05-29 09:23:18

标签: sql stored-procedures postgresql-9.3

我可以在sum()中使用coalesce()吗?

我想在Postgres的存储函数中使用它。

例如

case (COALESCE(t3.Count3,0)+ COALESCE(t2.Count2,0) >= t4.Count4::float) 
then ( select (t4.Count4::float/((t3.Count3::float)+(t2.Count2::float))) * 100 as Count5 ) 
else ''0'' 
end as Count5

1 个答案:

答案 0 :(得分:2)

很难说你在这里要做什么,因为代码中存在多个问题。此外,虽然您的标题提及SUM,但您的代码不包含该代码(尽管您确实有+,但这不相同)。

如果这是SELECT声明的一部分,那么我猜你想要的是:

SELECT
CASE
    WHEN COALESCE(t3.Count3,0)+ COALESCE(t2.Count2,0) >= t4.Count4::float
    THEN 100 * t4.Count4::float/(COALESCE(t3.Count3::float,0)+COALESCE(t2.Count2::float,0))
    ELSE 0
END as Count5
FROM MyTable