题解 | #统计每个学校的答过题的用户的平均答题数#
统计每个学校的答过题的用户的平均答题数
https://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5
select university , count(question_id)/count(distinct question_practice_detail.device_id) as avg_answer_cnt from user_profile join question_practice_detail on user_profile.device_id = question_practice_detail.device_id group by university order by university;
题目:请你写SQL查找每个学校用户的平均答题数目(说明:某学校用户平均答题数量计算方式为该学校用户答题总次数除以答过题的不同用户个数)根据示例,你的查询应返回以下结果(结果保留4位小数),注意:结果按照university升序排序!!!
重点:某学校用户平均答题数目=该校用户答题总次数/该校答过题的不同用户个数
即:avg_answer_cnt = count(question_id)/count(distinct question_practice_detail.device_id)
【注意这里对distinct关键字的使用,不同用户的表达方式是distinct device_id】学会了这一点,就不用苦苦用两个select字句分别查询了。。。关键写了两大串都是错的。。
解析:连接两张表,按学校进行分组,计算每个学校的平均答题数目,最后排序。
考察:表链接;group by分组;聚合函数;去重distinct;排序
