有一个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