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

union
select question_id as tid,count(distinct practice_record.uid) as uv,
count(*) as pv
from practice_record
group by question_id
order by left(tid,1) DESC, uv DESC,pv DESC;