【刷题】面筋-sql-学生成绩单里两门成绩>80的学生名字

题目

  • 学生成绩单里两门成绩>80的学生名字

语句

  • SELECT S.name FROM Student S WHERE S.score > 80 GROUP BY S.name Having count(*)>=2;

解析

  • 返回值是学生名字:SELECT S.name
  • 查询表是学生成绩单:FROM Student S
  • 成绩>80:WHERE S.score > 80
  • 从这些结果中选出有两门或两门以上的任意科目成绩的学生:
    • 先用名字分组,后对分组后的内容进行筛选:GROUP BY S.name Having count(*)>=2

having count(*)>i

  • 没有分组的情况下having和Where 类似。

  • 有分组的时候 Where 对分组前内容过滤,having是分组后的内容进行筛选。

  • having 里面可以写聚合函数,

  • 示例:

    • select phone from aa group by phone having count(*) > 1
    • 以phone分组,分组后,每组里面phone出现次数大于1的 phone 会显示出来。

END

posted @ 2020-05-08 21:05  anliux  阅读(778)  评论(0编辑  收藏  举报