having
having的使用
作用:用来过滤数据
练习:查询部门10,20,30,40,这4个部门中最高工资比10000高的部门信息
select department_id,max(salary) from employees group by department_id having department_id in(10,20,30,40) and max(salary)>10000;
结论1:如果过滤条件中使用了聚合函数,则必须使用having来替换where,否则,报错。
结论2:having必须声明在group by 后面
having必须和group by一起使用
结论:当过滤条件中有聚合函数时,则此过滤条件必须声明在having中。
当过滤条件中没有聚合函数时,则此过滤条件声明在where中或having中都是可以的,但是建议声明在where中
where 与 having 的对比
如果过滤条件中没有聚合函数:这种情况下,where的执行效率要高于having