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