美文网首页
HAVING子句

HAVING子句

作者: 糖砂西红柿 | 来源:发表于2018-06-21 09:37 被阅读6次

有重复的数据行,才有分组并统计的可能性。
如果没有重复的数据行,就没有分组的意义。
SELECT子句中只能出现分组字段和聚合函数。
聚合函数,聚合的是根据分组聚合的,每一个组就相当于一个表。

在讲解HAVING具体做法之前,首先来看这样一个查询。
范例:查询出平均工资高于1200的所有职位信息,以及该职位对应的人数和平均工资。
对于数据的筛选,实际上只学习过了WHERE子句,所以现在自然可以联想到我们应该基于WHERE实现。


图片.png

执行报错:


图片.png
为什么会出这样的错呢?
大家都知道,分组统计是先分组再统计。
  • 按照SQL执行顺序,①WHERE②GROUP③SELECT④ORDER BY
    语句执行过程:
    图片.png
    分组后进行的过滤统计是要求在HAVING子句中实现的。
    之前的语法:
    图片.png
    现在的语法:
    图片.png

原来的写法:

图片.png
现在的写法:
图片.png
总结:
WHERE是在GROUP BY分组前进行使用,表示对要分组的数据进行筛选定义,不允许使用统计函数!!!
HEAVING是在GROUP BY之后使用(执行),允许使用统计函数,针对于分组后的数据进行筛选。
当我们学完HAVING之后,SQL标准语法的查询就是这样的:
图片.png

相关文章

  • 2020-07-15 SQL刷题笔记一

    having 子句 having子句既可包含聚合函数作用的字段也可包括普通的标量字段 having子句必须于gro...

  • HAVING子句

    有重复的数据行,才有分组并统计的可能性。如果没有重复的数据行,就没有分组的意义。SELECT子句中只能出现分组字段...

  • having子句

    原因:存在HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 要求: (1)having子句中的...

  • sqlite(17)-Having子句

    Having子句允许指定条件来过滤将出现在最终结果的分组结果。WHERE子句在所选列上设置条件,而Having子句...

  • SQLite Having 子句

    SQLite Having 子句 HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。 WHERE ...

  • MySQL学习day-34:子查询与分页

    一、子查询 可以将子查询放在许多的 SQL 子句中,包括:WHERE 子句; HAVING 子句;FROM 子句。...

  • SQL HAVING 子句

    印象深刻的一个sql语法,记录一下!来自 w3school(http://www.w3school.com.cn/...

  • MySQL HAVING子句

    在本教程中,我们将学习如何使用MySQL HAVING子句来指定行分组或聚合的过滤条件。MySQL HAVING子...

  • PostgreSQL Having子句

    在PostgreSQL中,HAVING子句与GROUP BY子句组合使用,用于选择函数结果满足某些条件的特定行。 ...

  • HAVING子句的力量

    在以前的 SQL 标准里HAVING子句只能出现在GROUP BY后面,后来的SQL标准中HAVING子句已经可以...

网友评论

      本文标题:HAVING子句

      本文链接:https://www.haomeiwen.com/subject/utzfyftx.html