上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3.2 WHERE与HAVING的区别
我们可以使用WHERE子句对表进行数据过滤,同时使用HAVING子句对分组结果进行过滤。例如,以下语句查询拥有2名以上女性员工的部门:
其中,WHERE子句用于检索女性员工,GROUP BY子句按照部门统计女性员工的数量,HAVING子句选择数量大于或等于2的部门。查询返回的结果如下:
只有财务部(dept_id=3)中有2名女性员工。
提示:从性能的角度来说,我们应该尽量使用WHERE子句过滤掉更多的数据,而不是等到分组之后再通过HAVING子句进行过滤。但是如果业务需求只能基于汇总之后的结果进行过滤,那就另当别论了。