MySQL avg() 是一個聚合函數,用於返回一個表達式在各種記錄中的平均值。
用法
以下是 MySQL 中 avg() 函數的基本語法:
SELECT AVG(aggregate_expression)
FROM tables
[WHERE conditions];
參數說明
aggregate_expression:它指定我們要查找平均結果的列或表達式。
table_name:它指定我們要從中檢索記錄的表。 FROM 子句中必須至少列出一個表。
WHERE 條件:可選。它指定要選擇的記錄必須滿足的條件。
MySQL avg() 函數示例
考慮我們的數據庫有一個名為員工的表,其中包含以下數據。現在,我們將通過各種示例來理解這個函數:

1. 基本示例
執行以下查詢,計算表中所有員工的平均工作時間:
mysql> SELECT AVG(working_hours) Avg_working_hours FROM employees;
輸出:
我們將得到如下結果:

2. 帶有 WHERE 子句的 MySQL AVG() 函數
WHERE 子句指定所選記錄必須滿足的條件。執行以下查詢以計算 working_hours >= 12 的員工的總平均工作時間。
mysql> SELECT AVG(working_hours) Avg_working_hours FROM employees WHERE working_hours>=12;
輸出:
它將給出以下輸出:

3. MySQL AVG() 函數與 GROUP BY 子句
GROUP BY 子句用於按一個或多個列返回每個組的結果。例如,此語句使用 AVG() 函數計算每個員工的平均工作時間,然後使用 GROUP BY 子句對結果進行分組:
mysql> SELECT emp_name, occupation, AVG(working_hours) Avg_working_hours FROM employees GROUP BY occupation;
輸出:
在這裏,我們可以看到每個員工的總工作時間是通過根據他們的職業對他們進行分組來計算的。

4. 帶有 HAVING 子句的 MySQL AVG() 函數
HAVING 子句用於過濾 MySQL 中組的平均值。執行以下語句,計算所有員工的平均工作時間,根據他們的職業對他們進行分組,並返回 Avg_working_hours>9 的結果。
mysql> SELECT emp_name, occupation,
AVG(working_hours) Avg_working_hours
FROM employees
GROUP BY occupation
HAVING AVG(working_hours)>9;
輸出:

5. 帶有 DISTINCT 子句的 MySQL AVG() 函數
MySQL 使用 DISTINCT 關鍵字從列名中刪除重複的行。此子句與此 avg() 函數一起使用,以返回表中存在的唯一記錄數的平均值。
執行以下查詢,刪除員工表的 working_hours 列中的重複記錄,然後返回平均值:
mysql> SELECT emp_name, occupation,
AVG(DISTINCT working_hours) Avg_working_hours
FROM employees
GROUP BY occupation;
輸出:

相關用法
- MySQL ROUND()用法及代碼示例
- MySQL REPEAT()用法及代碼示例
- MySQL POWER()用法及代碼示例
- MySQL LEAD() and LAG()用法及代碼示例
- MySQL IS_IPV4()用法及代碼示例
- MySQL WEEK()用法及代碼示例
- MySQL CHARACTER_LENGTH()用法及代碼示例
- MySQL CURTIME()用法及代碼示例
- MySQL weekofyear()用法及代碼示例
- MySQL CURRENT_TIME()用法及代碼示例
- MySQL Convert()用法及代碼示例
- MySQL FROM_BASE64()用法及代碼示例
- MySQL OCT()用法及代碼示例
- MySQL PI()用法及代碼示例
- MySQL CONCAT()用法及代碼示例
- MySQL period_add()用法及代碼示例
- MySQL STDDEV()用法及代碼示例
- MySQL INET6_ATON()用法及代碼示例
- MySQL SPACE()用法及代碼示例
- MySQL IS_UUID()用法及代碼示例
注:本文由純淨天空篩選整理自 MySQL avg() function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。