SQL连续登录两天及以上的日期区间

登录表:user_login_detail
字段:user_id(用户ID) login_ts(登录时间)

需求:连续登录两天及以上的日期区间,开始日期,结束日期,需要给出三个字段,分别是user_id、start_date、end_data。


select user_id,min(datediff) start_date, max(datediff) end_date from (
    select 
     user_id,login_date,dr,date_sub(login_date,dr) datediff 
     
     from (
        select user_id ,date(login_ts) login_date, row_number() over(partition by  user_id  order by login_ts ) dr from user_login_detail
    ) a 
) b group by user_id,datediff having count(*) >= 2

 

posted on 2025-06-21 18:13  北京的小乔  阅读(19)  评论(0)    收藏  举报