select distinct
    user_id,
    last_value(date) over(partition by user_id order by date rows between current row and unbounded following) as d
from login;