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

查询连续登陆的用户

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

SELECT user_id
FROM (
    SELECT 
        user_id,
        COUNT(*) AS consecutive_days
    FROM (
        SELECT 
            user_id,
            DATE(log_time) AS login_date,
            ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY DATE(log_time)) AS rn
        FROM login_tb
        WHERE user_id IN (SELECT user_id FROM register_tb)
        GROUP BY user_id, DATE(log_time)  -- 替代DISTINCT去重
    ) AS numbered
    GROUP BY user_id, DATE_SUB(login_date, INTERVAL rn DAY)
) AS grouped
WHERE consecutive_days >= 3
ORDER BY user_id;

还可以这么写

#SQL提升#
全部评论

相关推荐

2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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