题解 | 最长连续登录天数

最长连续登录天数

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

#断点分组
select
user_id
,max(cnt_consec_days) as max_consec_days
from
    (select
    user_id
    ,fdate
    ,count(consec_days)over(partition by user_id,consec_days) as cnt_consec_days
    from
        (select
        user_id
        ,fdate
        ,pd
        ,sum(pd)over(partition by user_id order by fdate) as consec_days
        from
            (select
            user_id
            ,fdate
            ,lag_fdate
            ,case 
                when datediff(fdate,lag_fdate)=1 then 0
                when lag_fdate is null then 1
                else 1 end  as pd
            from
                (select
                user_id
                ,fdate
                ,lag(fdate,1)over(partition by user_id order by fdate) as lag_fdate
                from tb_dau)t1
                )t2)t3)t4
group by 1;

全部评论

相关推荐

2025-12-18 11:59
广州南方学院 C++
牛客78682892...:直接点还好,总比要了简历也不回的强
点赞 评论 收藏
分享
2025-12-29 22:46
武汉大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务