select user_id,max(consec_days) as max_consec_days
from
(select
b.user_id,
b.first_date,
count(b.first_date) as consec_days
from
(select
a.user_id,
date_sub(fdate,interval a.rn day) as first_date
from
(select
user_id,
fdate,
row_number()over(partition by user_id order by fdate) as rn
from tb_dau)a
)b
group by b.user_id,b.first_date)c
group by user_id
现有数据无法解题→需要去增加数据→找连续登录与非连续登录数据特征上的不同
连续登录天数间隔都是1,离初始天间隔是等差数列,1,2,3,4...,用登录时间减去用户按时间排序的序号天数,连续登录的一段时间会得到同一初始天,按初始天分组进行计数,找到其中最大的即可得到最大登录时间。



京公网安备 11010502036488号