聚合函数,分组函数(重点+难点)

--使用了聚合函数后,不要再查询其他字段
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  是对筛选之后的分组进行排序

 

posted @ 2020-08-24 22:33  龙陌  阅读(519)  评论(0编辑  收藏  举报