版权声明
- LeetCode 系列笔记来源于 LeetCode 题库1,在个人思考的基础之上博采众长,受益匪浅;故今记此文,感怀于心,更多题解及程序,参见 Github2;
- 该系列笔记不以盈利为目的,仅用于个人学习、课后复习及交流讨论;
- 如有侵权,请与本人联系([email protected]),经核实后即刻删除;
- 本文采用 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 协议发布;
1. LeetCode 596
- 方法一:
- 子查询中,执行分组后对不重复的学生计数;
- 使用
WHERE
子句筛选上课学生数量不小于5的课程;
- 方法二:
- 对分组后的数据使用
HAVING
子句过滤; - 过滤条件:不重复的学生数量大于等于5;
- 对分组后的数据使用
2. 子查询+ WHERE 子句
SELECT class
FROM (
SELECT class, COUNT(DISTINCT student) AS num
FROM courses
GROUP BY class
) AS auxTable
WHERE num >= 5;
3. HAVING 子句
- 注意:聚集函数
COUNT()
中可使用DISTINCT
关键字,统计不重复的元素数量;
SELECT class
FROM courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5;