我的列数值低于
Week Value
0 83
1 0
2 1
3 4
4 0
5 9
我需要结果
Week Value Remaining
0 83 83
1 0 83
2 1 82
3 4 78
4 0 78
5 9 69
如何在Oracle SQL查询中执行此操作。我知道我可以在PL / SQL中实现这一点,但我想在select查询中实现这一点。有人可以帮助我吗?
答案 0 :(得分:0)
您可以使用累计金额执行此操作:
select t.*,
(max(case when week = 0 then value end) over () -
coalesce(sum(case when week > 0 then value end) over (order by week), 0)
) as remaining
from t;
我认为你不应该把0周视为特别的事情。相反,使用正值和负值。然后你可以这样做:
select t.*,
sum(value) over (order by week) as remaining
from t;