GROUP BY
按照一个或多个字段分组,常用于统计汇总。
简介
GROUP BY 把分组键相同的记录归为一组,再对每组执行 SUM、COUNT、AVG 等聚合。SELECT 中未参与聚合的普通字段通常也应出现在 GROUP BY 中。分组前用 WHERE 筛选明细行,分组后用 HAVING 筛选聚合结果。
基础语法
SELECT department, SUM(amount) FROM orders GROUP BY department;
示例
GROUP BY 示例
按 department 分组并汇总 amount,观察每个部门只返回一行统计结果。
示例数据表
表名:
orders| department | amount |
|---|---|
| Sales | 1200 |
| IT | 900 |
| Sales | 1500 |
| HR | 700 |
运行结果
| department | SUM(amount) |
|---|---|
| HR | 700 |
| IT | 900 |
| Sales | 2700 |
常见问题
GROUP BY 后面应该写什么字段?
通常写希望分组统计的字段;SELECT 中非聚合字段一般也应出现在 GROUP BY 中。
GROUP BY 和 DISTINCT 有什么区别?
DISTINCT 用于去重,GROUP BY 更适合配合 COUNT、SUM、AVG 等聚合统计。
GROUP BY 可以按多个字段分组吗?
可以,例如按 customer_id 和 status 组合分组。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。