使用GROUP BY可对数据分组并配合聚合函数进行统计分析,如SUM、COUNT、AVG等,支持多字段分组及HAVING过滤分组结果,实现精准数据分析。
在MySQL中使用 GROUP BY 是对数据进行分组统计的核心方式,常配合聚合函数实现数据分析。它能将具有相同值的行归为一组,然后对每组执行计算操作,比如求和、计数、平均值等。
BY 的基本语法SELECT 列名, 聚合函数(列) FROM 表名 GROUP BY 分组列;
例如,有一张销售记录表sales,包含字段:product(产品)、region(地区)、amount(金额)。你想知道每个地区的总销售额:
SELECT region, SUM(amount) AS total_sales FROM sales GROUP BY region;
比如查看每个地区每个产品的销售总额:
SELECT region, product, SUM(amount) AS total FROM sales GROUP BY region, product;
此时数据会先按 region 分组,再在每个 region 内按 product 分组。例如,只显示总销售额超过1000的地区:
SELECT region, SUM(amount) AS total_sales FROM sales GROUP BY region HAVING total_sales > 1000;
HAVING 后面可以使用别名,而 WHERE 不行。这是与 WHERE 的关键区别之一。 基本上就这些。掌握 GROUP BY 配合聚合函数和 HAVING,就能完成大多数分组统计需求。注意 SELECT 中的非聚合字段必须出现在 GROUP BY 子句中,否则会报错(尤其在 SQL 模式严格时)。