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

最长连续登录天数

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

 select user_id,max(consec_days) as max_consec_days
 from 
    (select 
    b.user_id,
    b.first_date,
    count(b.first_date) as consec_days
    from 
        (select 
        a.user_id,
        date_sub(fdate,interval a.rn day) as first_date
        from
            (select 
            user_id, 
            fdate,
            row_number()over(partition by user_id order by fdate) as rn
            from tb_dau)a
        )b
    group by b.user_id,b.first_date)c
group by user_id

现有数据无法解题→需要去增加数据→找连续登录与非连续登录数据特征上的不同

连续登录天数间隔都是1,离初始天间隔是等差数列,1,2,3,4...,用登录时间减去用户按时间排序的序号天数,连续登录的一段时间会得到同一初始天,按初始天分组进行计数,找到其中最大的即可得到最大登录时间。

全部评论

相关推荐

03-29 15:34
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司8个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
13
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务