这道题目要求我们计算不同学校、不同难度的用户平均答题量。我们需要从三个表中提取数据:user_profile
、question_practice_detail
和 question_detail
。
解题步骤:
-
连接表:我们需要将
user_profile
表与question_practice_detail
表通过device_id
进行连接,然后再与question_detail
表通过question_id
进行连接,以获取每个用户的答题难度信息。 -
分组计算:根据
university
和difficult_level
进行分组,计算每个组的平均答题量。 -
计算平均值:对于每个分组,计算该组内用户的答题总数,并除以用户数量,得到平均答题量。
-
格式化输出:将结果保留四位小数。
代码实现
SELECT
u.university,
qd.difficult_level,
ROUND(COUNT(qpd.id) / COUNT(DISTINCT u.device_id), 4) AS avg_answer_cnt
FROM
user_profile u
JOIN
question_practice_detail qpd ON u.device_id = qpd.device_id
JOIN
question_detail qd ON qpd.question_id = qd.question_id
GROUP BY
u.university, qd.difficult_level
ORDER BY
u.university, qd.difficult_level;