首頁 > 資料庫 > mysql教程 > 如何在單一 PostgreSQL 查詢中使用 SUM() 有效計算百分比?

如何在單一 PostgreSQL 查詢中使用 SUM() 有效計算百分比?

Linda Hamilton
發布: 2025-01-01 01:08:09
原創
292 人瀏覽過

How Can I Efficiently Calculate Percentages Using SUM() in a Single PostgreSQL Query?

在單一SQL 查詢中透過SUM() 計算百分比

在PostgreSQL 中,嘗試使用SUM 計算百分比時可能會遇到錯誤() 在同一個SQL 查詢中。當您嘗試存取尚不存在的欄位(例如範例中的 nb_ok)時,就會出現問題。

最佳化解決方案

更有效率、更準確的方法計算百分比是使用以下查詢:

SELECT property_name,
       (count(value_a = value_b OR NULL) * 100) / count(*) AS pct
FROM   my_obj
GROUP  BY 1;
登入後複製

此查詢採用以下內容步驟:

  1. 使用count(value_a = value_b OR NULL) 計算value_a 等於 value_b 的行數,無論 NULL 值為何。
  2. 將結果除以總行數使用count(*).
  3. 將結果乘以100 將比率表示為

處理NULL 值

在count() 表達式中使用OR NULL 可確保不計算NULL值。如果您的表包含 NULL 值,這一點很重要,因為它可以防止不正確的結果或被零除的錯誤。

強制小數位

在結果,您可以使用 100.0 而不是100,從而避免進行數值計算截斷:

SELECT property_name,
       round((count(value_a = value_b OR NULL) * 100.0) / count(*), 2) AS pct
FROM   my_obj
GROUP  BY 1;
登入後複製

避免不區分大小寫的識別碼

使用PostgreSQL 時,建議避免使用不帶引號的大小寫入混合標識符,例如valueA。相反,請使用小寫標識符以避免潛在的錯誤和混亂。

以上是如何在單一 PostgreSQL 查詢中使用 SUM() 有效計算百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板