背景:需要列出用户一天中24小时每个小时的累计消费,通过用户消费记录的结束时间与时间表关联后,只能累计计算出有过消费的小时如图:0点到1点累计消费10元,1点到2点无消费,2点到3点累计消费20。
现在对空字段进行补空值,使用lag只能对上一行进行补,无法补多个连续空值。
解决:开窗求出当前行到第一行中最大值进行部位
max(money_total) over(partition by user_id order by create_time rows between unbounded preceding and current row)
nvl(max(money_total) over(partition by user_id order by create_time rows between unbounded preceding and current row) , 0)