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 distinct 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 distinct user_id
from temp2 
group by user_id,group_count
having count(*)>2
order by user_id;