SQL41 最长连续登录天数

描述
你正在搭建一个用户活跃度的画像,其中一个与活跃度相关的特征是“最长连续登录天数”, 请用SQL实现“2023年1月1日-2023年1月31日用户最长的连续登录天数”#牛客AI配图神器#
select
    t4.user_id,
    max(t4.tp) as max_consec_days
from
    (
        select
            t3.user_id as user_id,
            count(t3.tm) as tp
        from
            (
                select
                    t2.user_id,
                    date_sub(t2.fdate, interval t2.rk day) tm
                from
                    (
                        select
                            t1.user_id,
                            t1.fdate,
                            row_number() over (
                                partition by
                                    user_id
                                order by
                                    t1.fdate
                            ) as rk
                        from
                            (
                                select distinct
                                    fdate,
                                    user_id
                                from
                                    tb_dau
                            ) t1
                    ) t2
            ) t3
        group by
            t3.user_id,
            t3.tm
    ) t4
group by
    t4.user_id
这个需求本质上是在构建用户活跃度画像,其中“最长连续登录天数”衡量的是用户在观察周期内的活跃稳定性和使用习惯强度。
我会先明确统计口径:按用户、按天去重,在 2023 年 1 月范围内识别每段连续登录区间,并取最长的一段作为用户级特征。
在计算上,通常会先筛选出 2023 年 1 月的登录数据,对同一用户同一天的重复登录进行去重;然后按用户对登录日期升序排序,给每条登录记录生成顺序编号;再利用“登录日期减去序号”这一方法识别连续登录区间,因为连续日期减去连续序号后会落在同一分组中;接着按用户和连续分组统计每段连续登录天数;最后再对每个用户取最大值,得到其最长连续登录天数。
在分析层面,我不会只停留在这个特征本身,还会进一步观察最长连续登录天数的分布、高连续用户占比、关键断点位置,以及在新老用户、渠道、时间节点等维度下的差异。
从漏斗位置看,这个指标属于用户生命周期中的留存与稳定活跃阶段,用来衡量用户是否已经形成持续使用习惯。
在输出层面,我会基于结果进一步形成业务结论,比如判断用户连续活跃整体处于什么水平、关键流失断点主要出现在什么阶段、不同用户分层之间是否存在明显差异,以及问题更偏向新用户承接、老用户衰减还是渠道质量差异。
最终再将结论转化为关键动作,例如优化新手承接链路、设计 3 日和 7 日关键节点激励、进行分层运营,并通过内容供给、触达策略和权益机制来提升用户持续登录和活跃稳定性。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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