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;最佳化解決方案
要解決此問題,請考慮更有效的方法:
使用表達式 (value_a = value_b OR NULL)。 使用 (COUNT(...) * 100) / COUNT(*) 將符合行數除以總行數。
計算百分比,無需需要外部函數。
SELECT property_name, ROUND((COUNT(value_a = value_b OR NULL) * 100.0) / COUNT(*), 2) AS pct FROM my_obj GROUP BY property_name;按property_name 分組顯示結果以顯示每個屬性的百分比包括小數位要在結果中保留小數位,請使用以下修改後的查詢:This版本使用ROUND(...) 將百分比四捨五入到小數點後兩位。
以上是如何有效率地計算 PostgreSQL 中符合行的百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!