题解 | 最长连续登录天数

最长连续登录天数

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

WITH date_num AS (
    SELECT
        user_id,
        fdate,
        ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY fdate) AS rn
    FROM tb_dau
    WHERE fdate BETWEEN '2023-01-01' AND '2023-01-31'
),
sd AS (
    SELECT
        user_id,
        fdate,
        DATE_SUB(fdate, INTERVAL rn DAY) AS start_date
    FROM date_num
),
consec_groups as
(
    select user_id ,start_date,count(*) as consec_days
    from sd
    group by user_id,start_date
)

SELECT
    user_id,
    MAX(consec_days) AS max_consec_days
FROM consec_groups
GROUP BY user_id;

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 14:11
很喜欢小米的新车,校招薪资每月22k,攒多久能买?
测试糕手手:别看工资,先看现金流存款。有50W存款以上再考虑,车是消耗品,选适合自己的重要。你有钱就当我没说过
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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