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

查询连续登陆的用户

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

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

全部评论

相关推荐

09-29 16:59
已编辑
门头沟学院 Java
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说
投递大疆等公司10个岗位
点赞 评论 收藏
分享
東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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