select user_id, date from(
    select *, rank() over(
        partition by user_id
        order by date desc
    ) as rk
    from login
) as tb
where rk = 1