AVG() 聚合函數用於計算數值列的算術平均值,自動忽略 NULL 值。本文展示整體平均與分組平均的實例。
employee_tbl 表,daily_typing_pages 為整數列。
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。
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。
DECIMAL 或 DOUBLE,保留小數位較多。ROUND(AVG(col), 2)。僅計算非 NULL 值。若某行 daily_typing_pages 為 NULL,不參與分母分子計算。
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;