首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL AVG() 函數教程:計算平均值與分組平均

     編輯:MySQL 綜合教學

MySQL AVG() 函數教程:計算平均值與分組平均

AVG() 聚合函數用於計算數值列的算術平均值,自動忽略 NULL 值。本文展示整體平均與分組平均的實例。

範例數據

employee_tbl 表,daily_typing_pages 為整數列。

1. 全表平均值

mysql> SELECT AVG(daily_typing_pages) FROM employee_tbl;
+-------------------------+
| AVG(daily_typing_pages) |
+-------------------------+
| 230.0000                |
+-------------------------+

計算過程:(250+220+170+100+220+300+350) / 7 = 1610 / 7 = 230。

2. 分組平均值

mysql> SELECT name, AVG(daily_typing_pages)
-> FROM employee_tbl GROUP BY name;
+------+-------------------------+
| name | AVG(daily_typing_pages) |
+------+-------------------------+
| Jack | 135.0000                |
| Jill | 220.0000                |
| John | 250.0000                |
| Ram  | 220.0000                |
| Zara | 325.0000                |
+------+-------------------------+

Jack:(170+100)/2=135;Zara:(300+350)/2=325。

3. 精度與類型

  • 返回類型通常為 DECIMAL 或 DOUBLE,保留小數位較多。
  • 若需四捨五入,可用 ROUND(AVG(col), 2)。
  • 整數列平均會產生小數,非整數除不盡時保留小數部分。

4. NULL 處理

僅計算非 NULL 值。若某行 daily_typing_pages 為 NULL,不參與分母分子計算。

5. 組合統計

SELECT 
    name,
    COUNT(*) AS days,
    SUM(daily_typing_pages) AS total,
    AVG(daily_typing_pages) AS avg,
    MIN(daily_typing_pages) AS min,
    MAX(daily_typing_pages) AS max
FROM employee_tbl
GROUP BY name;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved