SELECT
university,
difficult_level,
-- COUNT(question_id),
-- COUNT(DISTINCT device_id),
FORMAT (COUNT(question_id) / COUNT(DISTINCT device_id), 4) AS avg_ques_num
FROM
(
SELECT
user_profile.device_id,
user_profile.university,
question_practice_detail.question_id,
question_detail.difficult_level
FROM
user_profile,
question_practice_detail,
question_detail
WHERE
user_profile.device_id = question_practice_detail.device_id
AND question_practice_detail.question_id = question_detail.question_id
) temp
GROUP BY
temp.difficult_level,
temp.university
ORDER BY
university,
difficult_level
问题:参加了答题的不同学校、不同难度的用户平均答题量,输出示例如下
题解思路:
1.首先将三表按共有列相等的条件连接,查询device_id、university、question_id、difficult_level,如下图;
2.将上表作为临时表temp,进行查询;
2.1按难度分组,列出每个难度分别有多少题被做了,如下图;
2.2再按学校分组,列出每个学校每种难度的题各做了多少,如下图;
2.3再统计出各学校各难度的题分别有多少同学做,如下图;
2.4最后将COUNT(question_id)/COUNT(DISTINCT device_id)得出各学校各难度题目平均答题量。
3.保留小数位数使用FORMAT()函数;
4.排序:先按学校再按题目难度正序;

京公网安备 11010502036488号