MySQL的GROUP BY语句用于将查询结果按照一个或多个列进行分组,通常与聚合函数(如SUM、AVG、COUNT等)一起使用,以对每个分组的数据进行汇总计算。下面是GROUP BY语句的示例:
假设有以下数据表”students”:
id name age gender score
1 Alice 20 F 90
2 Bob 22 M 80
3 Charlie 21 M 85
4 David 20 M 92
5 Eva 21 F 87
可以使用以下SQL语句按照”gender”列进行分组,并对每个分组的成绩进行平均值计算:
SELECT gender, AVG(score) as avg_score
FROM students
GROUP BY gender;
执行以上SQL语句,得到以下查询结果:
gender avg_score
F 88.5
M 85.6667
GROUP BY语句可以指定多个列进行分组,例如:
SELECT gender, age, AVG(score) as avg_score
FROM students
GROUP BY gender, age;
执行以上SQL语句,得到以下查询结果:
gender age avg_score
F 20 90
F 21 87
M 20 92
M 21 85
M 22 80
GROUP BY语句还可以与HAVING子句一起使用,以过滤分组后的结果。例如,以下SQL语句可以查询平均成绩大于85的男性学生:
SELECT gender, AVG(score) as avg_score
FROM students
GROUP BY gender
HAVING gender = 'M' AND AVG(score) > 85;
执行以上SQL语句,得到以下查询结果:
gender avg_score
M 85.6667