SQL编程思想:基于5种主流数据库代码实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人


4.3 再次过滤数据

我们通常使用WHERE子句进行数据过滤,但是如果需要对分组汇总的结果进行过滤,是不是也可以使用WHERE子句实现呢?以下语句统计了每个部门的平均月薪,然后返回平均月薪高于10 000元的部门:

以上语句在5种数据库中都返回了类似的错误信息:WHERE子句中不允许使用聚合函数。

这个错误的原因在于,WHERE子句会针对FROM子句中的数据行进行过滤,在WHERE子句执行时还没有进行分组汇总操作,还没有计算出AVG(salary)函数的值,因此不允许使用聚合函数。