思路
a. 要求查每一个学校,则通过group by
进行分组。
b. 要求查不同难度,则通过group by
进行分组。
c. 要求平均答题人数,则使用答题总数/答题人数
。
d. 要求查询学校、试题难度、平均数,则直接使用三表联查。由于没有提到,如果没有答题的就不显示等问题。这里可以使用inner join
或者left join
。
答案
SELECT
user_profile.university,
question_detail.difficult_level,
COUNT(question_practice_detail.question_id) / COUNT(DISTINCT question_practice_detail.device_id)
FROM user_profile
INNER JOIN question_practice_detail
ON user_profile.device_id = question_practice_detail.device_id
INNER JOIN question_detail
ON question_detail.question_id = question_practice_detail.question_id
GROUP BY user_profile.university,question_detail.difficult_level