Oracle的查询-分组查询

Posted sm1lence

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;

 

以上是关于Oracle的查询-分组查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle分组查询

oracle按小时分组查询

Oracle查询语句怎么样按天分组

Oracle的查询-分组查询

Oracle 查询按类型分组

oracle中关联查询分组查询