题解 | 最长连续登录天数
最长连续登录天数
https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b
WITH date_num AS ( SELECT user_id, fdate, ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY fdate) AS rn FROM tb_dau WHERE fdate BETWEEN '2023-01-01' AND '2023-01-31' ), sd AS ( SELECT user_id, fdate, DATE_SUB(fdate, INTERVAL rn DAY) AS start_date FROM date_num ), consec_groups as ( select user_id ,start_date,count(*) as consec_days from sd group by user_id,start_date ) SELECT user_id, MAX(consec_days) AS max_consec_days FROM consec_groups GROUP BY user_id;