with t as(select date(l.log_time) as log_day, user_id, u.hobby, rank() over(partition by date(l.log_time) order by l.log_time) as rk from login_tb l join user_action_tb u using(user_id)) select log_day, user_id, hobby from t where rk = 1

with t as(select date(l.log_time) as log_day, user_id, u.hobby, rank() over(partition by date(l.log_time) order by l.log_time) as rk from login_tb l join user_action_tb u using(user_id)) select log_day, user_id, hobby from t where rk = 1