有一个courses 表 ,有: student (学生) 和 class (课程)。
请列出所有超过或等于5名学生的课。
例如,表:

应该输出:

Note:
学生在每个课中不应被重复计算!!!
解法一:这道题有一个容易忽视的条件,每个学生每门课只记算一次。所以应该过滤重复再计算。
select class from courses group by class having count(DISTINCT student)>=5
解法二:不要重复计算学生重复的课程
select class from (select distinct student,class from courses) as c
group by class having count(class)>=5
本文介绍如何使用SQL查询从数据库中找出拥有至少5名不同学生的热门课程,避免重复计算同一学生在相同课程中的报名次数。通过两种方法实现,确保结果的准确性。
2万+

被折叠的 条评论
为什么被折叠?



