首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL AVG() 函式教學:平均值計算與 GROUP BY 分組統計實例

     編輯:MySQL 資料庫相關知識

AVG() 聚合函式用於計算指定欄位的平均值,常搭配 GROUP BY 進行分組統計。本文以 employee_tbl 為例完整示範。

資料準備

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 | 250                |
| 2    | Ram  | 2007-05-27 | 220                |
| 3    | Jack | 2007-05-06 | 170                |
| 3    | Jack | 2007-04-06 | 100                |
| 4    | Jill | 2007-04-06 | 220                |
| 5    | Zara | 2007-06-06 | 300                |
| 5    | Zara | 2007-02-06 | 350                |
+------+------+------------+--------------------+

全表平均值

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

分組平均值:GROUP BY name

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)平均為 135,Zara 兩筆(300、350)平均為 325。

進階應用提示

  • 可搭配 ROUND(AVG(...), 2) 保留小數位。
  • 若需過濾平均值條件,使用 HAVING AVG(...) > 200(而非 WHERE)。
  • AVG() 會自動忽略 NULL 值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved