题解 | 查询连续登陆的用户
with rn_row as ( select user_id ,log_time ,row_number() over(partition by user_id order by log_time) as rn from login_tb ), grp_sub as ( select user_id ,log_time ,rn ,DATE_sub(log_time,interval rn day) as grp from rn_row ), count_cnt as ( select user_id,count(*) as cnt from grp_sub group by user_id having count(*) >= 3 ) select t1.user_id from count_cnt as t1 inner join register_tb as t2 on t1.user_id = t2.user_id;
本题目尤其注意1103和1003,大坑!