Oracle的查询-分组查询

--查询出每个部门的平均工资
select e.deptno,avg(e.sal)
from emp e
group by e.deptno;

分组查询中,出现在 group by 后面的原始列,才能出现在 select 后面

没有出现在 group by 后面的原始列 ,想在 select 后边出现必须加上聚合函数


 

 

--查询出平均工资高于2000的部门
select e.deptno,avg(e.sal)
from emp e
group by e.deptno
having avg(e.sal)>2000;

所有条件都不能使用别名来判断

 

where 是过滤分组前的数据,having 是过滤分组后的数据

where 必须在 group by 之前,having 在 group by 之后


 

 

--查询出每个部门工资高于800的员工的平均工资
--然后再查询出平均工资高于2000的部门
select e.deptno,avg(e.sal)
from emp e
where e.sal>800
group by e.deptno
having avg(e.sal)>2000;

 

posted @ 2019-08-28 21:52  Sm1lence  阅读(159)  评论(0编辑  收藏  举报