连续类指标计算方法

来源:互联网 发布:php后端面试题 编辑:程序博客网 时间:2024/06/04 17:51

连续类指标计算方法,比如连续登录天数、连续领取天数等等指标~

下面以连续登录天数为例,说下解决方法;

输入

每日login表

dtuser20170601A20170602A20170603A20170601B20170701B20170702B20170801C20170802C


输出

dtuserlianxu_num20170601A120170602A220170603A320170601B120170701B120170702B220170801C120170802C2


解决方法

解决方法1: 写段累计的代码,以用户分组,以时间排序,如果本次时间和上次时间差值为1,则连续值+1

解决方法2:

dtuserrow_number() over(partition by user order by dt) as rndt-rn+1以user和(dt-rn+1)进行分组,以dt进行排序,获得row_number取值,即得到连续值20170601A120170601120170602A220170601220170603A320170601320170601B120170601120170701B220170630120170702B320170630220170801C120170801120170802C2201708012


原创粉丝点击