如何解决Oracle中的累积计算
我在Emp
下面有一个包含三列(empno,ename,salary
)的表。
empno ename salary
---------------------
101 Ram 2000
102 Kumar 1000
103 Mani 3000
我需要通过在上表中显示Cumulative_Salary
来在下面的输出。
Empno Ename Cumulative_Salary
-------------------------------
101 Ram 2000
102 Kumar 3000
103 Mani 6000
解决方法
您正在寻找SUM OVER
。
select
empno,ename,salary,sum(salary) over(order by empno) as cumulative_salary
from emp
order by empno;
通过在ORDER BY empno
子句中应用OVER
,我们可以隐式应用RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
,但是如果您愿意的话,您当然可以使其明确。
文档:cronguru
, select
empno,sum(salary) as cumulative_salary
from emp
group by
empno,ename
order by empno;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。