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 语句在处理大型数据集时非常有用,可以帮助用户快速了解数据的分布和汇总情况。