#|分组后带条件查询的几种情况

1.要求输出课程号和选修人数,查询结果按照人数降序排列,若人数相同,按课程号升序排序
思路:
第一步
#|分组后带条件查询的几种情况
文章图片

score表可知,需要由group by 课程号来进行查询课程号和选修人数
第二步:
查询结果按人数排列 count要求>2
对group by 的结果添加查询条件需要用关键词 having即having count(学号)>2
第三步:
最后一步排序 需要利用关键词 order by
总结:
综合上述分析sql语句可写成

SELECT 课程号, COUNT(学号) AS 选修人数 FROM score GROUP BY `课程号` HAVING COUNT(`学号`) > 2 ORDER BY COUNT(学号) DESC, `课程号` ASC

2.查询两门以上不及格课程的同学的学号及其平均成绩
#|分组后带条件查询的几种情况
文章图片

思路:
【#|分组后带条件查询的几种情况】第一步:根据score表分析 先用group by 选出学号和平均成绩
第二步:
限制条件1-->不及格的课程
限制条件2-->两门以上[不及格课程]
根据要求来不及格课程是查询的条件之一而两门以上是对查询结果在做限制
where 关键词后筛选出不及格的课程having 关键词筛选出两门以上的不及格课程
总结:
综合上述的分析得出符合要求的sql语句
SELECT 学号, avg(成绩) AS 平均成绩 FROM score WHERE `成绩` < 60 GROUP BY `学号` HAVING COUNT(`课程号`) > 2


    推荐阅读