GROUP BY 用於將查詢結果依指定欄位分組,配合聚合函數(SUM、COUNT、AVG、MAX、MIN 等)進行統計分析。關鍵規則:SELECT 清單中未包裹在聚合函數內的欄位,必須 出現在 GROUP BY 子句中。
SELECT column1, AGG_FUNC(column2)
FROM table_name
GROUP BY column1;
| store_name | Sales | Date |
|---|---|---|
| Los Angeles | $1500 | Jan-05-1999 |
| San Diego | $250 | Jan-07-1999 |
| Los Angeles | $300 | Jan-08-1999 |
| Boston | $700 | Jan-08-1999 |
SELECT store_name, SUM(Sales) AS total_sales
FROM Store_Information
GROUP BY store_name;
| store_name | total_sales |
|---|---|
| Los Angeles | $1800 |
| San Diego | $250 |
| Boston | $700 |
SELECT department, job_title, COUNT(*) AS emp_count, AVG(salary) AS avg_sal
FROM employees
GROUP BY department, job_title;
先依部門分組,再依職位細分。
SELECT store_name, SUM(Sales) AS total_sales
FROM Store_Information
GROUP BY store_name
HAVING total_sales > 1000;
僅保留營業額超過 1000 的店鋪(WHERE 無法過濾聚合結果)。
SELECT store_name, SUM(Sales) AS total_sales
FROM Store_Information
GROUP BY store_name
ORDER BY total_sales DESC;
ANY_VALUE()。熟練掌握 GROUP BY,是資料分析與報表開發的基石技能。