select u_n,c_n,date from
(select 
u1.name u_n,
c1.name c_n,
l1.date date,
dense_rank() over(partition by u1.name order by l1.date desc) as dk
 from login l1
join user u1 on l1.user_id = u1.id
join client c1 on l1.client_id = c1.id) t1
where t1.dk = 1
order by t1.u_n;

一开始以为要是筛选ios的,多加了选项,后来发现不是筛选ios的,只是做排名,按username排,看题要细心