计算百分比仅显示 100 perc PostgreSQL
Calculate percentage shows only 100 perc PostgreSQL
我正在尝试计算配给量,但我不明白为什么它只显示 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
这称为整数除法:由于分子和分母都是整数值,因此 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
我正在尝试计算配给量,但我不明白为什么它只显示 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
这称为整数除法:由于分子和分母都是整数值,因此 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