DB2 SQL Having 从句嵌套 Table 表达式
DB2 SQL Having Clause with a Nested Table Expression
Return部门编号和工资最高的部门的总工资。工资单是部门所有工资和佣金的总和。使用带有嵌套 table 表达式的 having 子句。
select e0.deptno,
(select sum(sal+com) FROM emp
group by deptno
having sum(sal+com) >= all(select sum(sal+com)
from emp
group by deptno) )as top
from emp as e0
group by e0.deptno
;
但是我的结果不正确。我不太确定我的嵌套 table 表达式与 having 子句的结合是否正确。有人可以帮助我吗?提前致谢。
就此而言,您不需要 having 子句。您可以按部门汇总,按工资单排序结果并获取第一条记录:
select deptno, sum(sal + com) payroll
from emp e
group by deptno
order by payroll desc
fetch first 1 rows only
如果您确实想使用 having
(或者如果您使用的 db2 版本不支持 fetch ... rows ...
子句),那么我们可以按照您的初始想法进行构建,如下所示:
select deptno, sum(sal + com) payroll
from emp
group by deptno
having sum(sal + com) >= all (
select sum(sal + com) from emp group by deptno
)
Return部门编号和工资最高的部门的总工资。工资单是部门所有工资和佣金的总和。使用带有嵌套 table 表达式的 having 子句。
select e0.deptno,
(select sum(sal+com) FROM emp
group by deptno
having sum(sal+com) >= all(select sum(sal+com)
from emp
group by deptno) )as top
from emp as e0
group by e0.deptno
;
但是我的结果不正确。我不太确定我的嵌套 table 表达式与 having 子句的结合是否正确。有人可以帮助我吗?提前致谢。
就此而言,您不需要 having 子句。您可以按部门汇总,按工资单排序结果并获取第一条记录:
select deptno, sum(sal + com) payroll
from emp e
group by deptno
order by payroll desc
fetch first 1 rows only
如果您确实想使用 having
(或者如果您使用的 db2 版本不支持 fetch ... rows ...
子句),那么我们可以按照您的初始想法进行构建,如下所示:
select deptno, sum(sal + com) payroll
from emp
group by deptno
having sum(sal + com) >= all (
select sum(sal + com) from emp group by deptno
)