【场景】:不同条件下的情况 【分类】:分组查询、select if
分析思路
难点:
1.不同难度可以理解为每个难度
浙大每个难度题目下的正确率
- [使用]:
count(if(result = 'right', 1, null))
和group by difficult_level
求解代码
方法一: from 表连接
select
difficult_level,
count(if(result = 'right', 1, null))/count(a.device_id) as correct_rate
from user_profile a, question_practice_detail b, question_detail c
where a.device_id = b.device_id
and b.question_id = c.question_id
and university = '浙江大学'
group by difficult_level
order by correct_rate
方法二:
join 表连接
select
difficult_level,
count(if(result = 'right', 1, null))/count(a.device_id) as correct_rate
from user_profile a
join question_practice_detail b using(device_id)
join question_detail c using(question_id)
where university = '浙江大学'
group by difficult_level
order by correct_rate