#|分组后带条件查询的几种情况
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
推荐阅读
- 开学第一天(下)
- 爱就是希望你好好活着
- 三十年后的广场舞大爷
- Y房东的后半生14
- 七年之痒之后
- MediaRecorder前后摄像头同时录像
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 迷失的世界(二十七)
- 上班后阅读开始变成一件奢侈的事
- 你有婚内虐待行为吗()