跟他学sql(第八天)

第二十五问

题目:查询每门课程被选修的学生数
分析:说实话,我实在是不太明白什么叫被选修的学生数,我们就当成是每一门课有多少学生选修了吧。

  • 课程号 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题目也就刷了一半,剩下一半找个时间慢慢刷了吧。


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33241802/article/details/107093235