GROUP BY
子句用于将查询结果按指定列进行分组。它常常与聚合函数(如 COUNT
、SUM
、AVG
等)一起使用,以便在每个组内进行计算和统计。GROUP BY
是处理分组数据的强大工具,广泛用于报表和统计查询。
📚 目录
1. GROUP BY 子句简介
GROUP BY
子句将查询结果中的数据按指定列分组。每个组内的记录将作为一个单元进行处理。在每个组内,通常会应用聚合函数(如 COUNT
、SUM
、AVG
等)来计算该组的相关信息。
2. 基本语法结构
SELECT 列名, 聚合函数(列名) FROM 表名 GROUP BY 列名;
- 列名:指定进行分组的列。
- 聚合函数:用于计算每个组的统计信息,如
COUNT
、SUM
、AVG
等。
示例:
SELECT city, COUNT(*) FROM users GROUP BY city;
此语句将返回每个城市的用户数量。
3. 使用聚合函数
GROUP BY
通常与聚合函数一起使用。常见的聚合函数包括:
COUNT()
:计算组内的记录数。SUM()
:计算组内数值列的总和。AVG()
:计算组内数值列的平均值。MAX()
:返回组内数值列的最大值。MIN()
:返回组内数值列的最小值。
示例:
SELECT city, AVG(age) FROM users GROUP BY city;
此语句将返回每个城市的平均年龄。
4. GROUP BY 与 HAVING 子句结合使用
HAVING
子句用于对 GROUP BY
结果进行过滤。它与 WHERE
子句类似,但 WHERE
子句用于过滤单个记录,而 HAVING
用于过滤分组后的结果。
示例:
SELECT city, COUNT(*) FROM users GROUP BY city HAVING COUNT(*) > 5;
此语句将返回包含超过 5 个用户的城市。
发表回复