select user_id
from
(
select user_id,day_divided,count(*) as numbers
from
(
select user_id,
date_sub(date(log_time),interval
rank()over(partition by user_id order by log_time asc)-1
day
) as day_divided
from
(
select distinct r.user_id as user_id,log_time from register_tb as r
join
(
select user_id,log_time from login_tb
) as l
on r.user_id = l.user_id
) as t1
) as t2
group by user_id,day_divided
) as t3
where numbers >= 3