MySQL分组查询详解:如何使用GROUP BY高效聚合数据
在MySQL中,使用GROUP BY子句可以对查询结果进行分组,通常结合聚合函数(如COUNT、SUM、AVG等)实现数据的分类统计与分析,通过SELECT department, COUNT(*) FROM employees GROUP BY department;可以快速统计每个部门的员工数量。
核心要点解析:

- 基本语法:GROUP BY需置于WHERE子句之后、ORDER BY之前,基本结构为:
SELECT 列1, 聚合函数(列2) FROM 表名 GROUP BY 列1;
- 多字段分组:支持按多个字段分组,如
GROUP BY department, job_role,实现更细粒度的数据划分。 - HAVING子句:用于对分组后的结果进行筛选(与WHERE不同,WHERE在分组前过滤行)。
SELECT department, AVG(salary) FROM employees GROUP BY department HAVING AVG(salary) > 5000;
- 常见聚合函数:
- COUNT():统计行数
- SUM():计算总和
- AVG():求平均值
- MAX()/MIN():获取最大/最小值
注意事项:
- GROUP BY分组的列必须是SELECT中的有效列(或聚合函数),否则可能报错。
- 分组后结果默认无序,可通过ORDER BY排序。
- 在MySQL严格模式下,SELECT中的非聚合列必须包含在GROUP BY中,否则会触发错误。
通过灵活运用GROUP BY,可以高效完成数据报表、趋势分析等任务,是数据库查询中不可或缺的功能。
未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网。
原文地址:https://www.html4.cn/11282.html发布于:2026-08-16





