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

查询连续登陆的用户

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

with 
new_user as (
    select user_id from register_tb where date(reg_time) = '2022-02-08'
)


,user_login as (
    select l.user_id, date(l.log_time) as login_date, row_number() over(partition by l.user_id order by date(l.log_time) asc ) as rk
    from login_tb l where l.user_id in (select distinct user_id from new_user)
)

, login_streak as (
    select user_id, login_date, datediff(login_date, date_add('2022-02-08', interval (rk-1) day)) as days_diff
    from user_login
)

select user_id from login_streak
group by user_id, days_diff
having count(login_date) >= 3
order by user_id asc

全部评论

相关推荐

03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
刘湘_passion:出国旅游?那就小心你的腰子咯
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务