select *
from
    (select
        exam_id as tid,
        count(distinct uid) as uv,
        count(uid) as pv
    from 
        exam_record
    group by 
        tid
    order by 
        uv desc,pv desc) a

union all

select *
from
    (select
        question_id as tid,
        count(distinct uid) as uv,
        count(uid) as pv
    from 
        practice_record
    group by 
        tid
    order by 
        uv desc,pv desc) b