聚合函数,分组函数(重点+难点)
--使用了聚合函数后,不要再查询其他字段 select ename from emp where sal = (select max(sal) from emp); select ename from emp where sal > (select avg(sal) from emp);
--分组操作**********************
select deptno, count(empno), avg(sal), sum(sal) from emp group by deptno;
select job, avg(sal) from emp group by job;
--分组后,select只能用来查询分组的字段和聚合函数
--平均工资大于2000的部门编号
select deptno, avg(sal) avg_sal
from emp
group by deptno
having avg(sal)
> 2000;
--各个部门下平均工资大于1000的,CLERK的平均工资和部门编号,对筛选后的分组按照部门编号进行排序
select deptno, avg(sal)
from emp
where job = 'CLERK'
group by deptno
having avg(sal) > 1000
order by deptno;
--执行顺序 -->where-->group by --->having---> order by --where 分组之前过滤,对表中全部数据进行筛选 --group by 对筛选之后的数据进行分组 --having 是筛选出符合条件的分组 --order by 是对筛选之后的分组进行排序