sql分组查询语句

SQL分组查询语句用于将数据按照指定的列进行分组,并对每个分组进行聚合计算,例如求和、平均值、最大值、最小值等。

基本语法:

SELECT 列1, 列2, … , 聚合函数(列)
FROM 表名
GROUP BY 列1, 列2, …

示例:

假设有一个学生表,包含学生姓名、性别、年龄、班级、成绩等字段,现在要按照班级分组,统计每个班级的平均成绩和最高成绩。

SELECT 班级, AVG(成绩) AS 平均成绩, MAX(成绩) AS 最高成绩
FROM 学生表
GROUP BY 班级

执行以上SQL语句后,将会得到每个班级的平均成绩和最高成绩的统计结果。

除了基本语法外,SQL分组查询还可以使用HAVING子句对分组后的结果进行筛选,类似于WHERE子句对原始数据进行筛选。HAVING子句可以使用聚合函数和分组后的列进行筛选,例如筛选平均成绩大于80分的班级:

SELECT 班级, AVG(成绩) AS 平均成绩
FROM 学生表
GROUP BY 班级
HAVING AVG(成绩) > 80

此外,还可以使用GROUPING函数和ROLLUP关键字进行分组汇总,例如统计每个班级和总体的平均成绩:

SELECT 班级, AVG(成绩) AS 平均成绩
FROM 学生表
GROUP BY 班级 WITH ROLLUP

执行以上SQL语句后,将会得到每个班级和总体的平均成绩的统计结果。