超过五个学生的课程

题目:有一个courses 表 ,有: student (学生) 和 class (课程)。

请列出所有超过或等于5名学生的课。

例如,表:

±--------±-----------+
| student | class |
±--------±-----------+
| A | Math |
| B | English |
| C | Math |
| D | Biology |
| E | Math |
| F | Computer |
| G | Math |
| H | Math |
| I | Math |
±--------±-----------+
应该输出:

±--------+
| class |
±--------+
| Math |
±--------+

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/classes-more-than-5-students
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路: 首先是要求超过五个学生的课程,此时我们应该要想到可以先将他们按课程分类,这样就方便对每个课程选修人数计数,
用到group by … having… ,一定要用distinct 去重,不然会有重复计数。

解题代码:

第一种方法:

/* Write your T-SQL query statement below */
select class from courses
group by class
having count(distinct student) >=5;

第二种方法:


select class from (
    select class , count(distinct student) as num
    from  courses
    group by class
)as table2
where num >=5

猜你喜欢

转载自blog.csdn.net/qq_43964318/article/details/109521584
今日推荐