1.問題
select department_id,avg(salary)
from employees
where avg(salary)>6000
group by department_id
--having avg(salary)>6000
2.原因。
sql語句的執行順序為
from子句
where 子句
group by 子句
having 子句
order by 子句
select 子句
首先得知道聚合函數是對結果集運算的,當在where子句使用聚合函數時,此時根據group by 分割結果集的子句還沒有執行,此時隻有from 後的結果集。
是以無法在where子句中使用聚合函數。