题解 | 统计每个学校各难度的用户平均刷题数

统计每个学校各难度的用户平均刷题数

https://www.nowcoder.com/practice/5400df085a034f88b2e17941ab338ee8

解决思路:
1.确定需要那些表 三张都需要参与计算 
2.理清题意:不同学校、不同难度的用户平均答题量:不同学校、不同难度需要进行分组 group by university,difficult_level 
用户平均答题量(这个是难点):不能想着直接使用avg这个聚合函数,需要计算出这个平均值 ,
首先需要确定总共的用户数,count(distinct device_id),一定要去重!
题目数就是count(question_id) 。
3.三张表的关系处理:抓住第一张和第二张表的 device_id 二三张表的question_id;

select 
t1.university as university,
t3.difficult_level as difficult_level,
round(count(t2.question_id) / count(distinct t2.device_id),4) as avg_answer_cnt
from 
user_profile as t1,
question_practice_detail as t2,
question_detail as t3
where 
t1.device_id = t2.device_id 
and t2.question_id = t3.question_id
group by t1.university,t3.difficult_level;


全部评论

相关推荐

鲸鸿:实习协议不用管签多久,要走的时候提前三天说就可以了
点赞 评论 收藏
分享
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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