hive补空值,向上累计向下累计均可

背景:需要列出用户一天中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)

posted @ 2020-09-29 17:02  韩云松  阅读(1556)  评论(0)    收藏  举报