题解 | 最长连续登录天数

最长连续登录天数

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

with login_sequence as (
    select distinct
        user_id,
        fdate
    from tb_dau
    where fdate between '2023-01-01' and '2023-01-31'
),
user_groups as (
    select
        user_id,
        fdate,
        sum(case 
        when exists(
            select 1
            from login_sequence t2
            where t2.user_id = t1.user_id
            and t2.fdate = date_sub(t1.fdate,interval 1 day)
        ) then 0
        else 1
        end) over(partition by user_id order by fdate) as group_id
    from login_sequence t1  
),
consecutive_days as (
    select 
        user_id,
        group_id,
        count(*) as consec_days
    from user_groups 
    group by user_id,group_id
)

select
    user_id,
    max(consec_days) as max_consec_days
from consecutive_days
group by user_id

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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