首頁 > 資料庫 > mysql教程 > 如何計算資料庫表中多列的平均值?

如何計算資料庫表中多列的平均值?

DDD
發布: 2024-12-31 08:39:10
原創
868 人瀏覽過

How to Calculate the Average of Multiple Columns in a Database Table?

計算多個表格列的平均值

在資料庫表格操作中,經常需要計算多個欄位的平均值。當我們需要總結或分析數據時,這變得特別有用。讓我們考慮一個具體的範例來演示該過程。

場景:

我們有一個名為「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中文網其他相關文章!

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