第二十五问
题目:查询每门课程被选修的学生数
分析:说实话,我实在是不太明白什么叫被选修的学生数,我们就当成是每一门课有多少学生选修了吧。
- 课程号 c_id
- 选修的学生数量 count(distinct(s_id))
SELECT score.c_id '课程号',c_name '课程名',COUNT(DISTINCT s_id) '人数'
FROM score
JOIN course ON score.c_id = course.c_id
GROUP BY score.c_id
第二十六问
题目:查询出只有两门课程的全部学生的学号和姓名
分析:
- 学号 s_id
- 姓名 s_name
- 只有两门课 count(c_id) = 2
由于score表中一个学生同一门课不会有两个成绩,所以distinct
不用也没事。
SELECT Student.s_id '学号',Student.s_name '姓名' FROM score JOIN Student ON score.s_id = Student.s_id
GROUP BY score.s_id HAVING COUNT(score.c_id) = 2
第二十七问
题目:查询名字中带有"风"的学生
分析:使用like语句
SELECT * FROM Student WHERE s_name LIKE '%风%'
后记
感觉最近没练sql有一点生疏了,看来还是要熟能生巧。
最近还要忙开题的事情,而且项目的事情居然还不肯放我走,老司机这个逼真的素质dio差,还是稍微抓紧点时间吧,上次牛客上的剑指offer题目也就刷了一半,剩下一半找个时间慢慢刷了吧。