群組函數對一組資料列運算回傳單一結果,常用於統計報表。本文涵蓋五大核心函數、GROUP BY 分組規則、HAVING 過濾分組、巢狀群組函數應用。
| 函數 | 功能 | 資料型別要求 | 忽略 NULL |
|---|---|---|---|
| MAX(col) | 最大值 | 任意 | 是 |
| MIN(col) | 最小值 | 任意 | 是 |
| AVG(col) | 平均值 | NUMBER | 是 |
| SUM(col) | 總和 | NUMBER | 是 |
| COUNT(col) | 非 NULL 筆數 | 任意 | 是 |
| COUNT(*) | 總筆數 (含 NULL) | 任意 | 否 |
| COUNT(DISTINCT expr) | 非重複非 NULL 筆數 | 任意 | 是 |
SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
SELECT department_id, COUNT(*) FROM employees WHERE hire_date > '2020-01-01' GROUP BY department_id HAVING COUNT(*) > 5;
單層巢狀:MAX(AVG(salary)) 先按部門算平均薪資,再取最大者。
SELECT MAX(AVG(salary)) FROM employees GROUP BY department_id;