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

查询连续登陆的用户

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

with a as(
select lt.user_id,date(lt.log_time) as log_time
from login_tb as lt
left join register_tb as rt on rt.user_id = lt.user_id
where rt.user_id in (select user_id from register_tb)),
b as(
select user_id,
date_sub(log_time,interval row_number() over(partition by user_id order by log_time) day) as diff
from a),
c as (
select user_id,count(diff) as login_days
from b 
group by user_id,diff)
select user_id from c where login_days>= 3

复杂的条件一层一层写,写在一起SQL可能不认识

with a as(select user_id,date(log_time) log_time
from login_tb
where user_id in (select user_id from register_tb)),
b as(select user_id,log_time,
row_number() over(partition by user_id order by log_time) as diff
from a)
select distinct user_id from b where diff = 3

全部评论

相关推荐

04-29 22:35
门头沟学院 Java
牛友说改了名字能收到offer:旧图新发查看图片
点赞 评论 收藏
分享
那一天的Java_Java起来:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务