Running Total是什么意思呢?

假设我们有一张表:TRANS,表明我们有的交易记录,其中有一个column是id,另一个是money(表示该笔交易设计的金额),我们的需求就是如何计算每笔交易以后累积的交易总数。例子如下:

 

id money
1 10
2 20
3 15
4 5
5 50

 

如果算每次累积的,就依次是10,30,45,50,100。

一种方式:

SELECT T1.ID, T1.MONEY, SUM(T2.MONEY) RUNNING_TOTAL FROM TRANS T1,TRANS T2
WHERE T1.ID >= T2.ID
GROUP BY T1.ID, T1.MONEY
ORDER BY T1.ID ASC

ORACLE下,也可以使用OVER:

SELECT ID, SUM(MONEY) OVER (ORDER BY ID) RUNNINGT_TOTAL FROM TRANS