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

第3章 聚合与排序:3-3 为聚合结果指定条件

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


 ■ HAVING子句

■ HAVING子句的构成要素

■ 相对于HAVING子句,更适合写在WHERE子句中的条件

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

WHERE 子句 = 指定行所对应的条件
HAVING 子句 = 指定组所对应的条件
其次,对初学者来说,研究 DBMS 的内部实现这一话题有些深奥,这里就不做介绍了,感兴趣的读者可以参考随后的专栏——WHERE 子句和 HAVING 子句的执行速度。

部分内容来自于学习编程期间收集于网络的免费分享资源和工作后购买的付费内容。
原文地址:https://www.cnblogs.com/MarlonKang/p/12227872.html