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 日关键节点激励、进行分层运营,并通过内容供给、触达策略和权益机制来提升用户持续登录和活跃稳定性。
全部评论

相关推荐

04-24 11:13
已编辑
燕山大学 Java
1. 先做个自我介绍2. 第一个项目主要是做策略模式那个吗?3. 多类型推广码都有哪些类型?4. 减少微信 API 调用这个怎么做的?5. 你这个锁是什么时候加的?6. 双检是干嘛?7. 你双检的时候是怎么做的?8. 第二个项目是一个闹钟是吧?9. 这个分布式的闹钟是用分布式来做什么?10. 具体的使用场景有吗?哪些情况下用这个东西?11. 云端素材库这个权限体系你们用的是什么权限模型?12. 比如我作为用户我有哪些权限,你这个配置是在哪里配的呀?13. 说一下 MySQL 索引的结构吧14. 讲一讲 B+ 树15. 说一下聚簇索引和非聚簇索引的区别16. 非聚簇索引怎么查到全部的数据?17. 假如联合索引是 ABC,用 AC、BC、BAC 哪些情况下能用索引,哪些用不了?(这题回答有点虚,尤其是联合索引和优化器那块)18. 说一下 MySQL 事务的隔离级别19. MySQL 默认使用的是哪种?它是怎么实现这种隔离级别的?20. 什么情况下是当前读?什么情况下是快照读?21. 除了 `select for update` 还有其他情况是当前读吗?22. 假如有两个事务,它们都会先对同一条数据先读后算再写,这种情况下会有什么问题?23. 如果 Redis 的 key 过期了,Redis 怎么删除这个 key 呢?24. 它为什么每次只删除一部分呢?25. 你写了缓存雪崩、穿透、击穿,这种情况是在哪个项目里用的?26. 虚拟内存是解决什么问题?为什么要有虚拟内存这个概念?27. 说一下 TCP 的三次握手和四次挥手吧28. 三次握手为什么要三次?两次为什么不行?29. `TIME_WAIT` 这个状态有印象吗?这种状态下是在干什么?30. 开发过程中有没有用过 ThreadLocal?31. 说一下 ThreadLocal 的原理吧32. 你们写项目的时候用的垃圾回收器吧,用的是哪个垃圾回收器?手撕:最长上升子序列1. 这个题你现在的时间复杂度是多少?2. 有没有其他更快的思路?(贪心+二分优化O(n log n) 没想到)反问:这个岗位做的业务是什么?自己计网和操作系统的八股答的不好,G
发面经攒人品
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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