PostgreSQL 查询中 SUM() 的百分比计算
理解查询
提供的查询旨在计算 value_a 和 value_b 中的行的百分比my_obj 表是相等的。但是,它遇到错误,因为在compute_percent存储过程中引用的nb_ok列不存在。
优化解决方案
要解决此问题,请考虑更有效的方法:
SELECT property_name, (COUNT(value_a = value_b OR NULL) * 100) / COUNT(*) AS pct FROM my_obj GROUP BY property_name;
说明
此查询:
包括小数位
要在结果中保留小数位,请使用以下修改后的查询:
SELECT property_name, ROUND((COUNT(value_a = value_b OR NULL) * 100.0) / COUNT(*), 2) AS pct FROM my_obj GROUP BY property_name;
This版本使用 ROUND(...) 将百分比四舍五入到小数点后两位。
以上是如何高效计算 PostgreSQL 中匹配行的百分比?的详细内容。更多信息请关注PHP中文网其他相关文章!