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

查询连续登陆的用户

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

# 查询连续登录不少于3天的新注册用户
# 连续登录天数
# 按每个用户,登录日期对记录排序,编写连续序号
# 将登录日期转换为与2022-02-08相差的天数
# 如果是连续登录,那么相差天数-连续序号应该是相同数字

# t1 选出需要的数据,用户,登录日期,相差天数,连续序号
# 按用户,相差天数-连续序号聚合
# having选出连续登录>=3天的用户
with t1 as (
select lg.user_id, date_format(log_time, "%Y-%m-%d") log_day,
    datediff(log_time, "2022-02-08") diff_day,
    row_number() over(partition by lg.user_id order by log_time) rn
from login_tb lg
inner join register_tb rg on lg.user_id = rg.user_id)  # 只要2/8后新注册的用户

select user_id
from t1
group by user_id, diff_day-rn 
having count(*) >= 3;

全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
03-12 15:35
嘉应学院 Python
快说谢谢牛牛精灵:说不定就是下一个寒武纪!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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