SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

时间:2022-04-24 01:10:03

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

HAVING子句

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

 

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

 

HAVING子句的构成要素

SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件

笔者认为,聚合键所对应的条件还是应该书写在 WHERE 子句之中。
理由有两个。
首先,根本原因是 WHERE 子句和 HAVING 子句的作用不同。如前所述, HAVING 子句是用来指定“组”的条件的。因此,“行”所对应的
条件还是应该写在 WHERE 子句当中。这样一来,书写出的 SELECT 语句不但可以分清两者各自的功能,理解起来也更加容易。

WHERE 子句 = 指定行所对应的条件
HAVING 子句 = 指定组所对应的条件
其次,对初学者来说,研究 DBMS 的内部实现这一话题有些深奥,
这里就不做介绍了,感兴趣的读者可以参考随后的专栏——WHERE 子句和 HAVING 子句的执行速度 
SQL基础教程(第2版)第3章 聚合与排序:3-3 为聚合结果指定条件