oracle实现累加,oracle用sum函数实现累加

====================Question=========================

jmbdat dayt y mon

27-9月 -07 2033.2 2007 200709

28-9月 -07 2750.28 2007 200709

29-9月 -07 2885.68 2007 200709

30-9月 -07 2556.68 2007 200709

01-10月-07 2903.04 2007 200710

02-10月-07 1002.96 2007 200710

03-10月-07 1038.24 2007 200710

对上边的表用sql处理下 变成下面的

jmbdat dayt y mon mont

27-9月 -07 2033.2 2007 200709 2033.2

28-9月 -07 2750.28 2007 200709 4783.28

29-9月 -07 2885.68 2007 200709 7669.16

30-9月 -07 2556.68 2007 200709 20225.84

01-10月-07 2903.04 2007 200710 2903.04

02-10月-07 1002.96 2007 200710 3906

03-10月-07 1038.24 2007 200710 4944.24

该怎么做啊?

==================Solution=========================

SQL:

select tt.*,

sum(tt.dayt) over (partition by tt.mon order by tt.jmbdat,tt.y,tt.mon) as sum_dayt

from tablename tt;

Result :

JMBDAT DAYT Y MON SUM_DAYT

----------- ---------- ---------- ------ ----------

2007-9-27 2033.2 2007 200709 2033.2

2007-9-28 2750.28 2007 200709 4783.48

2007-9-29 2885.68 2007 200709 7669.16

2007-9-30 2556.68 2007 200709 10225.84

2007-10-1 2903.04 2007 200710 2903.04

2007-10-2 1002.96 2007 200710 3906

2007-10-7 1038.24 2007 200710 4944.24

7 rows selected

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值