計算多個表格列的平均值
在資料庫表格操作中,經常需要計算多個欄位的平均值。當我們需要總結或分析數據時,這變得特別有用。讓我們考慮一個具體的範例來演示該過程。
場景:
我們有一個名為「Request」的表,其中的列表示值 R1、R2、R3、R4,和R5。我們想要確定表中每筆記錄的這些值的平均值。
初始方法:
為了實現此目的,您最初嘗試了以下查詢:
Select Req_ID, Avg(R1+R2+R3+R4+R5) as Average from Request Group by Req_ID
但是,此查詢未提供預期結果。它計算值的總和,而不是平均值。
原因:
使用 AVG 聚合函數時,確保提供的參數是表達式非常重要其計算結果為單一數值。在本例中,您將多列的值相加,從而得到總和。
解:
您可以使用兩種方法來計算平均值正確:
1.使用子查詢(2008 語法):
SELECT *, (SELECT AVG(c) FROM (VALUES(R1), (R2), (R3), (R4), (R5)) T (c)) AS [Average] FROM Request
在此方法中,子查詢用於計算平均值。子查詢從每列中選擇值並將它們視為單獨的行。然後,應用 AVG 聚合函數來計算平均值。
2.在子查詢中使用UNION(2005 語法):
SELECT *, (SELECT AVG(c) FROM (SELECT R1 UNION ALL SELECT R2 UNION ALL SELECT R3 UNION ALL SELECT R4 UNION ALL SELECT R5) T (c)) AS [Average] FROM Request
此方法使用UNION 將不同欄位中的所有值組合到單一欄位中。然後將 AVG 聚合函數應用於組合列以計算平均值。
結果:
兩種方法都會為請求中的每筆記錄提供正確的平均值桌。透過遵循這些解決方案中的任何一個,您都可以準確計算多個表列的平均值並獲得所需的結果。
以上是如何計算資料庫表中多列的平均值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!