select
    a.uid,
    a.cnt
from
(select
    t.uid,
    t.cnt,
    row_number() over(order by t.cnt desc) as rk
from
    (select
        uid,
        count(trace_id) as cnt
    from
        user_client_log
    where 
        step = 'order'
    group by 
        1) t) a
where a.rk <= 3
order by 
    a.uid