统计每门课程的选课人数(不包括没人选的课程)

有学生表:Student(Sno,Sname,Ssex,Sage,Sdept),
课程表:Course(Cno,Cname,Credit,Semester),
选课表:SC(Sno,Cno,Grade)
统计每门课程的选课人数(不包括没人选的课程),列出课程号和选课人数。

怎么表达不包括没人选的课程,

可以使用 SQL 中的内连接(INNER JOIN)操作来将三张表连接起来,并在结果集中只保留有选课记录的课程,从而排除没人选的课程。具体 SQL 语句如下:

SELECT Cno, COUNT(*) AS num_of_students
FROM Course
INNER JOIN SC ON Course.Cno = SC.Cno
GROUP BY Course.Cno

这个 SQL 语句的含义是,首先将 Course 表和 SC 表通过课程号(Cno)进行内连接,得到一个新的临时表,其中只包含有选课记录的课程信息。然后,对这个临时表按照课程号进行分组(GROUP BY)操作,并统计每组的记录数,也就是每门课程的选课人数。最后,将课程号(Cno)和选课人数(num_of_students)作为结果返回。

由于使用了内连接,因此只有有选课记录的课程才会出现在结果集中,也就满足了“不包括没人选的课程”的要求。
如有帮助请点击采纳

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^