题解 | 最长连续登录天数
最长连续登录天数
https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b
WITH t1 AS ( SELECT user_id, fdate, ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY fdate) rn FROM tb_dau WHERE fdate BETWEEN '2023-01-01' AND '2023-01-31' ), t2 AS ( SELECT user_id, fdate, DATE_SUB(fdate, interval t1.rn DAY) grp FROM t1 ), t3 AS ( SELECT user_id, count(*) as consecutive_days FROM t2 GROUP BY user_id,grp ) SELECT user_id, max(consecutive_days) max_consec_days FROM t3 GROUP BY user_id