SQLPathLab
聚合统计 · 进阶

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
orders
departmentamount
Sales 1200
IT 900
Sales 1500
HR 700

运行结果

result
departmentSUM(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 组合分组。

标签

聚合统计常用

这篇内容是否清楚?