题解 | 最长连续登录天数

最长连续登录天数

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

WITH t1 AS (
    SELECT 
        user_id,
        fdate,
        ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY fdate) rn
    FROM 
        tb_dau
    WHERE 
        fdate BETWEEN '2023-01-01' AND '2023-01-31'
),
t2 AS (
    SELECT 
        user_id,
        fdate,
        DATE_SUB(fdate, interval t1.rn DAY) grp
    FROM 
        t1
),
t3 AS (
    SELECT 
        user_id,
        count(*) as consecutive_days
    FROM
        t2
    GROUP BY
        user_id,grp
)
SELECT 
    user_id,
    max(consecutive_days) max_consec_days
FROM 
    t3
GROUP BY 
    user_id

全部评论

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务