我正在尝试执行以下操作:使用此表:
DATE VAR
---------------
2011 2.82
2012 -3.47
2013 -5.8
2014 13
我需要获得另一张表:
DATE VAR ACUM
---------------------------------------
2011 2.82
2012 -3.47 -0.65
2013 -5.8 -6.45
2014 13 6.55
即。我找到了另一个列,其中VAR值加上所有先前值的总和。
for the 2014 row....13-5.8-3.47+2.82 = 6.55
for the 2013 row....-5.8-3.47+2.82 = -6.45
等等。
答案 0 :(得分:4)
使用Sum() Over()
技巧查找正在运行的总数
SELECT "DATE",
VAR,
Sum(VAR)OVER(ORDER BY "DATE") as ACUM
FROM Yourtable
或correlated subquery
SELECT "DATE",
VAR,
(SELECT Sum(VAR)
FROM Yourtable b
WHERE a."DATE" > b."DATE") ACUM
FROM Yourtable a
不要使用 DATE 作为列名,您必须始终将其括在双引号内。而且你也可以通过这样做来区分大小写。不好的主意。