596. Classes More Than 5 Students 【having】
题目
There is a table courses
with columns: student and class
Please list out all classes which have more than or equal to 5 students.
For example, the table:
+---------+------------+ | student | class | +---------+------------+ | A | Math | | B | English | | C | Math | | D | Biology | | E | Math | | F | Computer | | G | Math | | H | Math | | I | Math | +---------+------------+
Should output:
+---------+ | class | +---------+ | Math | +---------+
答案:
select a.class from (select class, count(distinct student) as num from courses group by class) as a where a.num >=5; select class from courses group by class having count(distinct student) >= 5;
having与where的区别是having可以使用聚合函数,比如sum,count等