考察点:多表链接
题目分解:
按每个学校、不同难度分组,使用group by;
平均答题数:总答题数除以总人数COUNT(up.answer_cnt) / COUNT(DISTINCT up.device_id) AS avg_answer_cnt  (AS用于答题表列名修改);
链表:user_profile和question_practice_detail用device_id链接,question_detail和question_practice_detail用question_id链接;
是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。
SQL语句如下
SELECT
    university,
    difficult_level,
    COUNT(up.answer_cnt) / COUNT(DISTINCT up.device_id) AS avg_answer_cnt
    FROM question_practice_detail AS qpd
    LEFT JOIN  user_profile AS up ON up.device_id=qpd.device_id
    LEFT JOIN  question_detail AS qd ON qd.question_id=qpd.question_id
    GROUP BY university,difficult_level