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

查询连续登陆的用户

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

WITH T1 AS (SELECT user_id , DATE(log_time) AS login_date FROM login_tb), 

T2 AS (SELECT user_id , login_date, ROW_NUMBER() OVER
(PARTITION BY user_id ORDER BY login_date) AS C1,
DATE_SUB(login_date, INTERVAL ROW_NUMBER() OVER
(PARTITION BY user_id ORDER BY login_date) DAY)
AS C2
FROM T1),

T3 AS (SELECT user_id, COUNT(*) AS consecu_days FROM T2 GROUP BY user_id, C2),

T4 AS (SELECT user_id FROM T3 WHERE consecu_days >= 3)

SELECT T4.user_id FROM T4 INNER JOIN register_tb R ON T4.user_id = R.user_id



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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