3-3

    • 使用COUNT函数等对表中数据进行汇总操作时,为其指定条件的不是WHERE子句,而是HAVING子句
    • 聚合函数可以在SELECT子句、HAVING子句和ORDER BY子句中使用
    • HAVING 子句要写在 GROUP BY 子句 之后
    • WHERE 子句用来指定数据行的条件,HAVING子句用来指定分组的条件

    使用HAVING 子句时SELECT语句的顺序
    SELECT
    FROM
    WHERE
    GROUP BY
    HAVING


    HAVING 子句中能够使用的 3 种要素如下:

    • 常数
    • 聚合函数 (COUNT等)
    • GROUP BY 子句中指定的列名(即聚合键)

    **


    • 通常情况下,为了得到相同的结果,将条件写在 WHERE 子句中要比写在 HAVING 子句中的处理速度更快,返回结果所需的时间更短
    • 通过WHERE 子句指定条件时,由于排序之前就对数据进行了过滤,因此能够减少排序的数据量
    • HAVING 子句是在排序之后才对数据进行分组的,因此与在WHERE 子句中指定条件比起来,需要排序的数据量就会多得多