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   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值