首頁 >資料庫 >mysql教程 >如何有效率地計算 PostgreSQL 中符合行的百分比?

如何有效率地計算 PostgreSQL 中符合行的百分比?

Linda Hamilton
Linda Hamilton原創
2024-12-27 09:10:12557瀏覽

How to Efficiently Calculate Percentages of Matching Rows in PostgreSQL?

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;
最佳化解決方案

要解決此問題,請考慮更有效的方法:

    說明
  • 說明
  • 此查詢:
  • 使用COUNT(.. .).

使用表達式 (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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn