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

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

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;


全部评论

相关推荐

点赞 评论 收藏
分享
03-31 00:39
门头沟学院 C++
南岗痞子:不还有俩没结束吗
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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