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

select
    c.user_id
from
    (
        select
            b.user_id,
            count(b.做差) 计数
        from
            (
                select
                    a.日期,
                    a.user_id,
                    rank() over (
                        partition by
                            a.user_id
                        order by
                            a.日期
                    ) 排序,
                    a.日期 - interval rank() over (
                        partition by
                            a.user_id
                        order by
                            a.日期
                    ) day 做差
                from
                    (
                        select
                            rt.user_id,
                            date (log_time) 日期
                        from
                            test.register_tb rt
                            join test.login_tb lt on rt.user_id = lt.user_id
                    ) a
            ) b
        group by
            b.user_id,
            b.做差
    ) c
where
    c.计数 >= 3

全部评论

相关推荐

07-14 13:37
重庆大学 C++
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 13:34
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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