sum() over()求累加数据

使用函数sum() over()函数求累加数据

          SELECT 
                dd
                ,f_capital_no
                ,sum(t.f_payout_amount) over(partition by f_capital_no order by dd) f_payout_amount
                ---以日期累加产品编号排序求金额的日累加数据
          FROM
          (  
                select
                      df.dd
                      ,df.f_capital_no
                      ,if(s.f_payout_amount is null,0,s.f_payout_amount) f_payout_amount
                      ---因为这里的金额不是每天都有,所以我们要对不存在金额的日期做0
                      ---业务方特殊需要,为了数据看起来更加立体,单纯求累加数据可以不加
                from tmp.yzy_df df
                left join
                (
                  select
                      substr(f_pay_time,1,10) dd
                      ,f_capital_no
                      ,sum(f_payout_amount) f_payout_amount
                      ---因为数据的最细时间是到时分秒,故我们应该先把金额聚合成粒度为天
                  from odsdb_gmcf_lmc.t_lmc_payout_single
                  WHERE  f_status='6' and f_capital_no like 'C51%'
                  group by substr(f_pay_time,1,10),f_capital_no
                )s on df.dd=s.dd and df.f_capital_no=s.f_capital_no
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值