select log_day, user_id, hobby from ( select * from ( select date(log_time) as log_day, user_id, rank() over ( partition by date(log_time) order by log_time ) as rn from login_tb ) t where t.rn = 1 ) t left join user_action_tb using (user_id) order by log_day