题解 | #统计每个学校各难度的用户平均刷题数#
统计每个学校各难度的用户平均刷题数
https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8
select university,difficult_level,count(b.device_id)/count(distinct b.device_id) as avg_answer_cnt from user_profile a,question_practice_detail b,question_detail c where a.device_id=b.device_id and b.question_id =c.question_id and b.question_id is not NULL group by university,difficult_level;
这道题主要是他问了你一句,参加了答题的,当我们把三张表自然连接在一起时,用户信息表当中有些用户并没有答题,你将三张表连在一起时,其新表元组中关于这个用户的答题ID是没有的,所以说我们新表中要删除答题ID为null的元组,这样出现的表再进行分组,各组将答过题的用户数量的和,除以去过重后的用户个数,要得到的就是平均答题量,然后按照答案要求进行select,选列,重命名。