首頁 >資料庫 >mysql教程 >如何計算單一SQL SELECT語句中兩個欄位之間匹配值的百分比?

如何計算單一SQL SELECT語句中兩個欄位之間匹配值的百分比?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 19:58:10300瀏覽

How to Calculate the Percentage of Matching Values Between Two Columns in a Single SQL SELECT Statement?

在 SQL 中單一 SELECT 的語句中透過 SUM()計算百分比

在“my_obj”表的上下文中,該表包含兩個整數位段(“value_a”)和“value_b”),您試圖確定“value_a”等於的實例的百分比'value_b'.

簡單有效率的方法

為了獲得最佳效能和簡單性,請考慮以下修改後的查詢:

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

This方法利用「count( )」的功能來忽略「NULL」值,確保兩列都被考慮在內。將匹配值的數量乘以 100,然後除以總數量,即可計算百分比。

包含小數位

如果需要小數位結果,在計算中使用「100.0」而不是「100」並考慮使用'round()':

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

此修訂版本確保計算仍然是數字,保留小數值並允許報告的百分比具有更高的精度。

以上是如何計算單一SQL SELECT語句中兩個欄位之間匹配值的百分比?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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