题解 | 最长连续登录天数
最长连续登录天数
https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b
窗口函数,思路较为简单
with date_rows as( select *, row_number() over(partition by user_id order by fdate) d_row from tb_dau order by fdate) select a.user_id, max(b.d_row - a.d_row) + 1 as max_consec_days # select * from date_rows a join date_rows b on a.user_id = b.user_id and b.fdate > a.fdate and b.d_row > a.d_row and DATEDIFF(b.fdate, a.fdate) = b.d_row - a.d_row group by a.user_id order by a.user_id