sql - 计算百分比显示只有 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
推荐阅读
- python - 在 PyCharm 中打印时删除 49 个字符的限制
- reactjs - React中如何控制渲染组件的顺序?
- sql - 如何计算 BigQuery 中数组列的所有值的平均值和中位数?
- docker - elasticsearch可以同时支持http和https访问吗?
- perforce - 在 perforce 中防止更改某些文件的最佳实践
- java - 无法将 http 重定向到 https
- python - 如何在 Forloop 中的 Python 中将字符串附加到字典
- r - 重塑凌乱的数据框,将行扩展到列名
- java - PathVariable 在 swagger SpringFox(3.0.0) 中作为可选
- ios - 在 Mac App Store 上下载应用程序时出现“找不到具有指定主机名的服务器”错误