题解 | #统计每个学校的答过题的用户的平均答题数#

统计每个学校的答过题的用户的平均答题数

http://www.nowcoder.com/practice/88aa923a9a674253b861a8fa56bac8e5

1.题目条件重点:每个学校、答过题的用户、平均答题数量情况。最后的结果要的是学校university和平均用户答题数avg_answer_cnt

方法一: ①首先每个学校可以德驰要通过group by university来分组 ②平均答题数=每个学校所有的答题数量/用户数 即count(q.queston_id)/count(distinct u.device_id) ③在user表中是所有的用户,不确定是否有答过题,所以答过题的用户,需要指定条件,两个表连接之后,要的是答题id非空的数据来计算所以where 字句的条件就是u.question_id is bull 整个就是: select university, (count(q.question_id)/count(distinct u.device_id)) avg_answer_cnt from user_profile u inner join question_practice_detail q on u.device_id=q.device_id where q.question_id is not null group by university

方法二: 如果平均数都是答题表中计算的,那么不需要考虑没有答题的人,因为没答题就不会上榜了 答案:

select university, (count(q.question_id)/count(distinct q.device_id)) avg_answer_cnt from user_profile u inner join question_practice_detail q on u.device_id=q.device_id group by university

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务