题解 | 最长连续登录天数
select user_id, max(consec_days) as max_consec_days
from
(
select distinct user_id, count(*) over(partition by user_id,start_date) as consec_days
from
(
select user_id, fdate, date_sub(fdate, interval rk day) as start_date
from
(
select user_id, fdate, row_number() over(partition by user_id) as rk
from
tb_dau as td
where fdate >= "2023-01-01" and fdate <= "2023-01-31"
) as t1
) as t2
) as t3
group by user_id
order by user_id