计算百分比仅显示100 perc PostgreSQL

时间:2020-03-13 17:05:55

标签: sql postgresql group-by count percentage

我正在努力计算口粮比率,但我不明白为什么它只显示0或100。当我不将其放在一起时,该公式可以正常工作:

case 
    when (count(status_id) filter (where status_id = 2)) = 0 then 0 
    else ((count(status_id) filter (where status_id = 2))/count(status_id))*100 end as conversion_rate

1 个答案:

答案 0 :(得分:1)

这称为整数除法:由于分子和分母都是整数值,因此Postgres会生成整数结果。

为避免这种情况,您可以执行以下操作:

case when (count(status_id) filter (where status_id = 2)) = 0 
    then 0 else 
    100.0 * count(status_id) filter (where status_id = 2) / count(status_id) 
end as conversion_rate