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

最长连续登录天数

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

WITH t AS(
    SELECT fdate, user_id,
           DENSE_RANK() over (PARTITION BY user_id ORDER BY fdate) AS rk
    FROM tb_dau
    WHERE YEAR(fdate) = 2023 AND MONTH(fdate) = 1           
),
t1 AS(
    SELECT t.*,
          DATE_SUB(fdate, INTERVAL rk DAY) AS diff_day
    FROM t
),
t2 AS (
    SELECT user_id, COUNT(diff_day) AS consec_days
    FROM t1
    GROUP BY user_id, diff_day
)
    SELECT user_id, MAX(consec_days) AS max_consec_days
    FROM t2
    GROUP BY user_id;

全部评论
大佬厉害啊
点赞 回复 分享
发布于 2024-08-15 15:46 浙江

相关推荐

不愿透露姓名的神秘牛友
昨天 12:10
点赞 评论 收藏
分享
06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
评论
9
2
分享

创作者周榜

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