执行顺序
from -> on -> join -> where -> group by -> agg_func -> with rollup/cube -> having -> select -> distinct -> order by -> limit
having与where的区别
where是在group by 之前对表进行行级过滤。
having是在group by 之后,对group by后的结果进行过滤。
- 如找到平均工资超过20000万的员工
select emp_no,avg(salary) as salary_avg
from salaries
group by emp_no
having salary_avg > 120000
order by salary_avg
limit 5;