就我所知,获得每个部门的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
);
它返回与第一次查询相同的结果。
答案 0 :(得分:2)
select sum(max_sal) as total_sum
from
(
select deptno, max(sal) as max_sal
from emp
group by deptno
) x
要获得每个部门的最高薪水,您只需按部门分组,然后使用max()
获得最高薪水。使用它作为子查询来总结这些。