MySQL 中的 GROUP BY
语句与聚合函数(如 COUNT()
, SUM()
, AVG()
, MAX()
, MIN()
等)结合使用,用于将查询结果集中的记录分组,并返回每个组的汇总信息。GROUP BY
语句通常用于数据分析,以便对数据进行分类汇总。
以下是 GROUP BY
语句的基本语法:
SELECT column1, column2, AGGREGATE_FUNCTION(column3)
FROM table_name
GROUP BY column1, column2;
column1
,column2
:这些是要用于分组的列名。table_name
:你要从中检索数据的表名。AGGREGATE_FUNCTION()
:这是一个聚合函数,用于对每个分组的数据执行计算。column3
:这是应用聚合函数的列名。
示例 1:简单的分组和计数
SELECT department, COUNT(employee_id)
FROM employees
GROUP BY department;
这个查询将 employees
表中的记录按 department
列分组,并计算每个部门的员工数量。
示例 2:分组并计算平均值
SELECT department, AVG(salary)
FROM employees
GROUP BY department;
这个查询将 employees
表中的记录按 department
列分组,并计算每个部门员工的平均薪资。
示例 3:使用多个分组列
SELECT department, job_title, COUNT(employee_id)
FROM employees
GROUP BY department, job_title;
这个查询将 employees
表中的记录先按 department
列分组,然后在每个部门内按 job_title
分组,并计算每个职位的员工数量。
示例 4:分组并使用多个聚合函数
SELECT department, MAX(salary) AS max_salary, MIN(salary) AS min_salary
FROM employees
GROUP BY department;
这个查询将 employees
表中的记录按 department
列分组,并找出每个部门的最高薪资和最低薪资。
在使用 GROUP BY
语句时,需要注意的是,所有非聚合的列都必须在 GROUP BY
子句中声明。此外,GROUP BY
子句中的列顺序不必与 SELECT
列表中的顺序相同。GROUP BY
语句在处理大型数据集时非常有用,可以帮助用户快速了解数据的分布和汇总情况。