问题描述
我在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;