题目:
表: Courses
+-------------+---------+ | Column Name | Type | +-------------+---------+ | student | varchar | | class | varchar | +-------------+---------+ 在 SQL 中,(student, class)是该表的主键列。 该表的每一行表示学生的名字和他们注册的班级。
查询 至少有5个学生 的所有班级。
以 任意顺序 返回结果表。
解题:
这道题也挺简单。就是简单的分组,以及having(针对分组后的数据)过滤。
但我一开始写的是这个SQL,这个把每个班级有的人数,也查出来了。不满足题目要求。
另外,题目要求至少有5个学生,其实5个学生也满足需求的,要查出来。
select class,count(student)as total from Courses group by class having total > 5
后来发现,可以直接在having 里去进行过滤。好厉害
select class from Courses group by class having count(distinct student) >=5