MySQL 数据库 分组查询

2023-05-16

分组查询:包括单列分组查询和多列分组查询。

group by

单列分组查询 示例:

1.根据科目分组,查询每个科目的平均分

2.根据班级分组,查询每个班级成绩总数

3.根据班级分组,查询每个班级的最低分

select subjectID,avg(exam) as 平均分 form exam group by subjectID;

select Classid,count(*) as 人数 from exam group by classid;

select Classid,min(exam) as 成绩 from group by classid order by min(exam) asc;

多列分组查询 示例:1.查询每个班的男生、女生数量

select ClassID as 班级,gender as 性别,count(studentID) as 人数 from student group by ClassID,gender;

注意条件的执行顺序:

  1. where------group by ------聚合函数------having

——示例:

查询1班2班大于50分的最低成绩

select Classid as 班级,min(exam) from group by Classid having min(exam)>50 order by min(exam) asc;

统计除去不及格成绩,平均分在80分以上的人数

select subjectId,avg(exam) as 平均分,count(*) as 人数 from exam where exam>=60 group by subjectId having avg(exam)>80;

  1. 执行顺序:首先执行where 子句从数据库筛选数据,然后通过group by 子句将筛选后的数据进行分组,聚合函数进行统计计算;最后,having 子句筛选掉哪些分组后不符合要求的数据行

注意:having后一般来说都是跟聚合函数来当筛选条件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 数据库 分组查询 的相关文章

随机推荐