题目描述

有一个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

提示:

  • 学生在每个课中不应被重复计算。

相关知识

本题不需要任何前置知识

解题过程

  1. 分析题意

    • 统计各个课的人数
    • 学生在每个课中不被重复计算
  2. 编写SQL

    SELECT
        class
    FROM
        courses
    GROUP BY class
    HAVING COUNT(DISTINCT student)>4
    
  3. 提交,运行通过

学习总结

  1. 本题主要考察SQL的运行过程
    • FROM
    • WHERE
    • SELECT
    • GROUP BY
    • HAVING
    • ORDER BY
    • 因为需要在聚合之后根据统计数筛选,所以不能写在WHERE子句里