select c.difficult_level,
sum(case when b.question_id is null then 0 when b.result='wrong' then 0 else 1 end)/sum(case when b.question_id is null then 0 else 1 end) as correct_rate
from user_profile a
left join question_practice_detail b on(a.device_id=b.device_id and a.university='浙江大学')
left join question_detail c on(b.question_id=c.question_id)
group by c.difficult_level having c.difficult_level is not null
order by correct_rate