select 
difficult_level,
round(sum(case when result='right' then 1 else 0 end)/count(question_id),4) correct_rate
from
(
select a.device_id,university,q.question_id,result,difficult_level 
from user_profile a
inner join question_practice_detail q
on a.device_id=q.device_id
inner join question_detail d
on q.question_id=d.question_id
) c
where university='浙江大学'
group by difficult_level
order by correct_rate