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

查询连续登陆的用户

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

思路:

  1. 去重,子查询找到目标用户
  2. 排序
  3. 相减 (date_sub第二个参数是天数!要用interval!)

-- 连续登录不少于三天
-- user_id 升序
with tmp as (
    select distinct user_id
           , date(log_time) as log_date
    from login_tb
    where user_id in (
        select user_id from register_tb
    )
)
, user_rn as (
    select user_id
           , log_date
           , row_number() over(partition by user_id order by log_date) as rn
    from tmp
)
, user_grp as (
    select user_id
           , count(*) as consecutive_days
    from user_rn
    group by user_id, date_sub(log_date, interval rn day)
)

select user_id from user_grp
where consecutive_days >= 3
order by user_id 

全部评论

相关推荐

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

创作者周榜

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