题解 | #最长连续登录天数#

最长连续登录天数

https://www.nowcoder.com/practice/cb8bc687046e4d32ad38de62c48ad79b

select user_id

    ,max(lianxu) as max_consec_days

from

(

    select user_id

        ,count(date2) as lianxu

    from

    (

        select t1.*,

        date_sub(fdate,interval rnm day) as date2

        from

        (   select *

            ,row_number() over(partition by user_id order by fdate) as rnm

            from tb_dau

        ) as  t1

    ) as t2

    group by t2.user_id,date2

) t3

group by  user_id

根据用户id分区,之后按照fdate升序排序,参考的评论区的大佬的题解,fdate - 排名 = date2 ,如果date2 相同,表示连续登录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务