使用函数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