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

查询连续登陆的用户

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


with t1 as(
select 
    b.user_id,
    b.log_time,
    lag(log_time) over(partition by b.user_id order by b.log_time
    rows between 1 preceding and current row) up_log_time
from register_tb a join login_tb b on a.user_id = b.user_id),

t2 as(
select
     * ,
    timestampdiff (day, date_format(t1.up_log_time,'%Y-%m-%d'), date_format(t1.log_time,'%Y-%m-%d')) day_diff
from t1 where t1.up_log_time is not null),

t3 as(
select 
    t2.user_id,
    count(1) cnt
from t2 
where day_diff = 1 
    group by t2.user_id
    having cnt >=2
    )
select t3.user_id from t3 order by t3.user_id;







































全部评论

相关推荐

今天 01:18
已编辑
南昌大学 后端工程师
白袜体育生_大中小厂...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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