Oracle 求和以前的值
Oracle sum previous values
我正在尝试执行以下操作:有了这个 table:
DATE VAR
---------------
2011 2.82
2012 -3.47
2013 -5.8
2014 13
我需要得到另一个table:
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
等等。
使用 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 作为列名,您必须始终将其括在双引号内。并且您还通过这样做使其区分大小写。坏主意。
我正在尝试执行以下操作:有了这个 table:
DATE VAR
---------------
2011 2.82
2012 -3.47
2013 -5.8
2014 13
我需要得到另一个table:
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
等等。
使用 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 作为列名,您必须始终将其括在双引号内。并且您还通过这样做使其区分大小写。坏主意。