题解 | 查询连续登陆的用户

查询连续登陆的用户

https://www.nowcoder.com/practice/9944210610ec417e94140ac09512a3f5

WITH tb1 AS (
    SELECT user_id, date_format(log_time, '%Y-%m-%d') AS log_date,
    ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY log_time ASC) AS rk
    FROM login_tb
    WHERE user_id IN (SELECT user_id FROM register_tb)
),
tb2 AS (
SELECT user_id, DATE_SUB(log_date, INTERVAL rk DAY) AS grp
FROM tb1
),
tb3 AS (
SELECT user_id, COUNT(*) AS consec_days
FROM tb2
GROUP BY user_id,grp
)
SELECT user_id
FROM tb3
WHERE consec_days >= 3


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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