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

--连续登录问题可以采用“连续值-连续值,结果一致”的原理
with temp as (
select
    t1.user_id,t1.reg_time,t1.reg_port,date(t2.log_time) as log_date,t2.log_port
    ,row_number() over(partition by t1.user_id order by date(t2.log_time) asc) as rn
from register_tb t1
inner join login_tb t2
on t1.user_id=t2.user_id
)
select
    user_id
from
(
select
    user_id,log_date_new,count(1) as lianxu_days
from
(
select
    user_id,log_date,date_sub(log_date,interval rn day) as log_date_new
from temp
) t
group by user_id,log_date_new
) t
where lianxu_days>=3
group by user_id
order by user_id asc
;

全部评论

相关推荐

06-27 18:45
中山大学 Ruby
25届应届毕业生,来广州2个礼拜了,找不到工作,绝望了,太难过了…
应届想染班味:9爷找不到工作只能说明,太摆了或者太挑了。
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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