WITH daily_earliest AS ( SELECT DATE(log_time) AS log_day, user_id, log_time, RANK() OVER (PARTITION BY DATE(log_time) ORDER BY log_time) as rank_num FROM login_tb ) SELECT d.log_day, d.user_id, u.hobby FROM daily_earliest d JOIN user_action_tb u ON d.user_id = u.user_id WHERE d.rank_num = 1 ORDER B...