可以使用rownumber(),给每个uid的logintime排顺序,然后通过date_sub得到每个日期减去序号的日期(可以理解为每次连续登录开始的前一天),再group by这个日期就能得到每次连续登录对应的天数,再取最大值就能得到最长连续登录天数。
例子:
UID logintime row date_sub(logintime,row)
201 2017/1/1 1 2017/12/31
201 2017/1/2 2 2017/12/31
201 2017/1/4 3 2017/1/1
201 2017/1/5 4 2017/1/1
201 2017/1/6 5 2017/1/1
然后group by UID,date_sub(logintime,row)得到
201 2017/12/31 2
201 2017/1/1 3
再取出最大值就是最大连续登录天数