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

查询连续登陆的用户

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

with
    t1 as (
        select
            user_id,
            date(log_time) log_time
        from
            login_tb
        where
            user_id in (
                select
                    user_id
                from
                    register_tb r
            )
    ),
    t2 as (
        select
            *,
            date_sub(
                log_time,
                interval row_number() over (
                    partition by
                        user_id
                    order by
                        log_time asc
                ) day
            ) subed_series_date
        from
            t1
    ),
    t3 as (
        select
            user_id,
            subed_series_date,
            count(1) `continue_log_days`
        from
            t2
        group by
            user_id,
            subed_series_date
        having
            count(1) > 2
    ),
    t4 as (
        select
            *,
            row_number() over (
                partition by
                    user_id
                order by
                    continue_log_days desc
            ) rk
        from
            t3
    )
select
    user_id
from
    t4
where
    rk = 1

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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