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

查询连续登陆的用户

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

select
    user_id
from 
(
    select 
        user_id,
        login_date,
        row_number() over (partition by user_id order by login_date) as rk,
        date_sub(login_date, interval row_number() over (partition by user_id order by login_date) day) as date_same
    from 
    (
        -- 首先获取去重的登录日期
        select distinct
            user_id,
            date(log_time) as login_date
        from 
            login_tb
        where 
            user_id in (select user_id from register_tb)
    ) distinct_dates
) as t
group by 
    user_id, date_same
having 
    count(*) >= 3;  -- 连续登录的天数>=3

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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