Oracle - 如何计算每个部门的最高工资总和

时间:2014-06-07 12:18:15

标签: sql oracle

就我所知,获得每个部门的MAX sal:

select ename, sal, deptno
from emp out
where sal = (
  select max(sal) from emp inside
  where out.deptno=inside.deptno
);

这会返回4个结果,现在我想要这4个结果的SUM,我该怎么做?这似乎不起作用:

select ename, sum(sal), deptno
from emp out
group by deptno, sal, ename
having sum(sal) = (
  select max(sal) from emp inside
  where out.deptno=inside.deptno
);

它返回与第一次查询相同的结果。

1 个答案:

答案 0 :(得分:2)

select sum(max_sal) as total_sum
from 
(
  select deptno, max(sal) as max_sal
  from emp
  group by deptno
) x

要获得每个部门的最高薪水,您只需按部门分组,然后使用max()获得最高薪水。使用它作为子查询来总结这些。