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

查询连续登陆的用户

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

with by_day as (
select user_id,log_time,DATE_SUB(date(log_time), INTERVAL (row_number() over(partition by user_id order by log_time)) DAY) day from login_tb
where user_id in (select user_id from register_tb))
select user_id from by_day group by  user_id,day
having count(*)>=3 order by user_id

row_number() over(partition by user_id order by log_time) rn 给日期表个序号

DATE_SUB(date(log_time), INTERVAL rn DAY) 原日期减去序号 如果是按照顺序来的,那么就是相同的一天

select user_id from by_day group by user_id,day 按照人和天来分组,相同天数大于等于三的 就是连续登录大于等于三天的

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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