# 如果当天出现多个用户同时最早登录,那么这些用户均需要输出
# 此题情况优先考虑窗口函数partition by,而不是group by
select
    a.log_day,
    a.user_id,
    u.hobby
from
(
select
    log_id,
    user_id,
    log_time,
    date(log_time) as log_day,
    rank() over(partition by date(log_time) order by log_time) as rk
from login_tb l
) as a
left join user_action_tb u
on a.user_id = u.user_id
where a.rk = 1
order by a.log_day
;