MySQL 內建多種聚合函數,可快速完成資料統計分析。本文系統介紹 AVG()、SUM()、MAX()、MIN() 四大核心統計函數的語法、適用場景、常見誤區與組合查詢技巧。
SELECT AVG(column) FROM table_name;
NULL 值SELECT AVG(uid) FROM user;
2.5000
註:此處統計 uid 平均值僅為演示語法,實務上通常統計價格、分數等業務指標。
SELECT SUM(column) FROM table_name;
SELECT SUM(uid) FROM user;
10
SELECT MAX(column) FROM table_name;
SELECT MAX(uid) FROM user;
4
SELECT MIN(column) FROM table_name;
用法同 MAX(),此處不再贅述。
可在單條 SQL 中同時使用多個聚合函數:
SELECT MAX(uid) AS max_uid, MIN(uid) AS min_uid, AVG(uid) AS avg_uid FROM user;
max_uid min_uid avg_uid 4 1 2.5000
錯誤寫法:
-- 雖能執行,但 username 返回值不確定(非標準 SQL 行為) SELECT MAX(uid), username FROM user;
正確寫法: 先排序再取第一筆
SELECT uid, username FROM user ORDER BY uid DESC LIMIT 1;
原理: 聚合查詢返回單行結果,若混入非聚合欄位且未納入 GROUP BY,MySQL(預設 sql_mode)會任意取該組內的一個值,結果不可預期。標準做法是使用子查詢或排序+限制。
GROUP BY 可進行分組統計HAVING 可過濾聚合後的結果