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

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

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

1.目标:查询每个学校答过题的用户平均答题数量情况

2.每个学校--->按学校分组
group by t1.university

3.平均答题数量、学校在两个表中--->两表连接,这里就是简单的内连接

user_profile t1 join question_practice_detail t2 on t1.device_id = t2.device_id

4.平均答题数量,下面有给到公式:该学校用户答题总次数除以答过题的不同用户个数

count(*)/count(distinct t1.device_id)

count(*)表示该组一共的答题数量,每有一个人答一道题就会有一条记录

count(distinct t1.device_id) 表示查询一共有多少个用户数,并且去重

5.其他 :order by t1.university; 下面有要求就加上了

tip:查询中的表名可以不加,加了可以提高效率。

求解方案

select t1.university,
round(count(*)/count(distinct t1.device_id),4) as avg_answer_cnt
#可以对独立字段加distinct
from user_profile t1 join question_practice_detail t2
on t1.device_id = t2.device_id
group by t1.university
order by t1.university;
全部评论

相关推荐

2024-12-13 05:23
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-13 15:48
点赞 评论 收藏
分享
评论
9
3
分享

创作者周榜

更多
牛客网
牛客企业服务