SELECT c.difficult_level, 
    COUNT(CASE WHEN b.result = 'right' THEN 1 ELSE NULL END)/COUNT(b.device_id) 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 c.difficult_level
ORDER BY correct_rate

易错点:没有对结果排序

题解:

1.任务:求解正确率:公式为 正确的题数/所有做的提数

2.不同难度:分组

3.浙大:过滤出浙大的

思路:

1.正确率公式:转换为计算字段,只使用b表就可以

2.分组:使用group by对难度进行分组

3.where子句过滤,最后排序

4.使用自连接,联结三个表