在“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中文網其他相關文章!