题解 | 统计每个学校各难度的用户平均刷题数
统计每个学校各难度的用户平均刷题数
https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8
解决思路: 1.确定需要那些表 三张都需要参与计算 2.理清题意:不同学校、不同难度的用户平均答题量:不同学校、不同难度需要进行分组 group by university,difficult_level 用户平均答题量(这个是难点):不能想着直接使用avg这个聚合函数,需要计算出这个平均值 , 首先需要确定总共的用户数,count(distinct device_id),一定要去重! 题目数就是count(question_id) 。 3.三张表的关系处理:抓住第一张和第二张表的 device_id 二三张表的question_id; select t1.university as university, t3.difficult_level as difficult_level, round(count(t2.question_id) / count(distinct t2.device_id),4) as avg_answer_cnt from user_profile as t1, question_practice_detail as t2, question_detail as t3 where t1.device_id = t2.device_id and t2.question_id = t3.question_id group by t1.university,t3.difficult_level;
查看19道真题和解析