with temp as (
select user_id,log_date,
case when datediff(log_date,lag(log_date,1,log_date) over(partition by user_id order by log_date)) >1 then 1 else 0 end as break
from (
select l.user_id,
date(log_time) as log_date
from login_tb l
join register_tb r on r.user_id=l.user_id
) t
),
temp2 as (
select user_id,
sum(break) over(partition by user_id order by log_date) as group_count
from temp
)
select user_id
from temp2
group by user_id,group_count
having count(*)>2
order by user_id;

京公网安备 11010502036488号