题解 | 最长连续登录天数

最长连续登录天数

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

WITH t1 AS(
    SELECT
        user_id,
        DATE(fdate) AS fdate
    FROM
        tb_dau
),
t2 AS(
    SELECT
        user_id,
        fdate,
        ROW_NUMBER() OVER(
            PARTITION BY user_id
            ORDER BY fdate ASC
        ) AS rk
    FROM
        t1
),
t3 AS(
    SELECT
        user_id,
        DATE_SUB(fdate, INTERVAL rk DAY) AS consec_group,
        COUNT(1) AS cnt
    FROM
        t2
    GROUP BY
        user_id,
        consec_group
)
SELECT
    user_id,
    MAX(cnt) AS max_consec_days
FROM
    t3
GROUP BY
    user_id
ORDER BY
    user_id ASC;

SQL经典题

全部评论

相关推荐

02-11 14:29
已编辑
字节跳动_QA
Edgestr:这种的写代码最狠了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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