select university,count(qp.question_id)/count(distinct up.device_id) as avg_answer_cnt from user_profile as up inner join question_practice_detail as qp on up.device_id = qp.device_id group by university order by university
一、使用内连接,是因为里面有个复旦大学有个用户并没有参与答题,不能算在内,所以使用内连接
二、题目中是计算每个学校答过题的用户,所以要使用group by 对学校进行分组
三、排序也是根据题目要求,对学校进行升序排列
四、计算用户的平均答题数,我们已经根据学校进行分组了,接下来就是每个学校内计算平均答题数了,计算方式为:答题的数量/答题的人数,答题的数量直接用count(question_id)得出,但是答题的人数有重复的,需要去重,固用count(distinct device_id)