9.数据分组 group by

时间:2022-10-23 09:50:20
--数据分组 group by
--作用:用于 对查询的数据进行分组,并处理
select deptno,job from emp group by deptno,job
--1.分组之后,不能将除分组字段 之外的字段放在select后面
--2.group by 后面可以跟多个字段,则这多个字段值都相同时,才分为一组
select deptno,job from emp group by deptno,job
 
--3.分组之后,可以使用分组函数对每个组进行数据处理
select deptno,avg(sal) from emp group by deptno
select deptno,count(1) from emp group by deptno
 
select comm,avg(sal) from emp group by comm
select * from emp
--having关键字
--作用:用于对分组数据进行过滤
--例:求平均薪水在2000以上的部门编号
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000
select deptno from emp group by deptno having avg(sal)>2000;
 
--where和having不冲突
select avg(sal),deptno from emp where sal>1500 group by deptno having avg(sal)>2500
select avg(sal),deptno from emp where sal>1500 group by deptno having avg(sal)>2500 order by deptno desc