where 关键字在使用聚合函数时不能使用。所以在聚合函数中加上了having来起到测试查询结果是否符合条件的作用。
having 称为分组过滤条件,也就是分组需要的条件,所以必须与group by联用。
注:当同时含有where子句,group by 子句, having 子句及聚合函数时,执行顺序如下:
(1)执行where子句查找符合条件的数据;
(2)使用group by子句对数据进行分组;
(3)对group by子句形成的组运行聚合函数计算每一组的值;
(4)最后用having子句去掉不符合条件的组。