码迷,mamicode.com
首页 > 数据库 > 详细

SQL之Running Total

时间:2014-11-27 16:16:02      阅读:376      评论:0      收藏:0      [点我收藏+]

标签:sql   running total   oracle   

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 FROMTRANS 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


参考资料:

http://www.1keydata.com/sql/sql-running-totals.html

http://www.dba-oracle.com/t_over_analytic_function.htm


SQL之Running Total

标签:sql   running total   oracle   

原文地址:http://blog.csdn.net/kiwi_coder/article/details/41547373

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!