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