SQL中的GROUP语句用于将数据按指定的列进行分组,并对每一组数据执行聚合函数,如SUM、COUNT、AVG等。
分组操作
GROUP BY子句用于指定要分组的列。例如,以下SQL语句将表student按性别分组:
sql
SELECT gender, SUM(score)
FROM student
GROUP BY gender;
以上语句将计算每个性别的总成绩。
聚合函数
聚合函数用于对分组数据执行计算。常用聚合函数包括:
* SUM:计算组内数据的总和
* COUNT:计算组内数据条数
* AVG:计算组内数据的平均值
例如,以下SQL语句计算每个性别的平均成绩:
sql
SELECT gender, AVG(score)
FROM student
GROUP BY gender;
分组条件
可以使用HAVING子句对分组后的数据进行过滤。HAVING子句类似于WHERE子句,但它作用于分组后的数据。例如,以下SQL语句过滤出平均成绩大于80分的性别:
sql
SELECT gender, AVG(score)
FROM student
GROUP BY gender
HAVING AVG(score) > 80;
嵌套分组
GROUP BY子句可以嵌套使用,实现更复杂的分组操作。例如,以下SQL语句计算每个性别和年级段的平均成绩:
sql
SELECT gender, grade, AVG(score)
FROM student
GROUP BY gender, grade;
GROUP的优点
使用GROUP BY的好处包括:
* 对数据进行汇总和分析
* 简化复杂查询
* 提高查询性能(避免重复计算)