每日一题-12(超过5名学生的课)

题12:

根据下表编写一个SQL语句列出所有超过或等于5名学生的课。
在这里插入图片描述
解题思路:
方法一:使用 GROUP BY 子句和子查询
(1)先统计每门课程的学生数量

SELECT
    class, COUNT(DISTINCT student) AS num
FROM
    courses
GROUP BY class

(2)再从中选择超过 5 名学生的课程。

SELECT
    class
FROM
    (SELECT
        class, COUNT(DISTINCT student) AS num
    FROM
        courses
    GROUP BY class) AS t
WHERE
    num >= 5;

方法二:使用 GROUP BY 和 HAVING 条件, HAVING的关键是分组后筛选

SELECT
    class
FROM
    courses
GROUP BY class
HAVING COUNT(DISTINCT student) >= 5

猜你喜欢

转载自blog.csdn.net/Txixi/article/details/121325965