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

查询连续登陆的用户

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

with t1 as (
    select user_id, date(log_time) as log_time, row_number() over(partition by user_id order by log_time) as rk
from login_tb
),
t2 as (
    select *,date_sub(log_time,interval rk day) as flt
    from t1
)
select user_id from
t2 where user_id IN (SELECT user_id FROM register_tb)
group by user_id having count(flt) >=3

先对每个用户的时间使用窗口函数进行排序,本题没有考虑一天多次出现,即没有对user_id进行去重;排序后使用date_sub

,获取每组最开始登陆的时间,基于该时间可对用户分组来获得各组最长登陆时间

全部评论

相关推荐

11-19 18:44
已编辑
成都理工大学 Java
程序员花海:我面试过100+校招生,大厂后端面试不看ACM,竞赛经历含金量低于你有几份大厂实习 这个简历整体来看不错 可以海投
如何写一份好简历
点赞 评论 收藏
分享
肖先生~:那年秋招闯进一位少年,人们都清楚:成功对他来说只是时间问题
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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