题解 | 统计每个用户的平均刷题数

统计每个用户的平均刷题数

https://www.nowcoder.com/practice/f4714f7529404679b7f8909c96299ac4

题意: 求山东大学每个难度题目的平均答题数

第一步, 求出不同大学的question_id, u,d_i,q_i

SELECT up.university, up.device_id, qpd.question_id
FROM user_profile AS up 
JOIN question_practice_detail AS qpd 
ON up.device_id=qpd.device_id

第二步, 将上面的表为设t, 和qd表join, 得出 u,di, dl

SELECT t.university, t.device_id, qd.difficult_level
FROM
(SELECT up.university, up.device_id, qpd.question_id
FROM user_profile AS up 
JOIN question_practice_detail AS qpd 
ON up.device_id=qpd.device_id) t
JOIN question_detail AS qd
ON qd.question_id=t.question_id

第三步, 求出平均值

SELECT t.university, t.device_id, qd.difficult_level, 
COUNT(*)/COUNT(DISTINCT t.device_id) AS avg_answer_cnt
FROM
(SELECT up.university, up.device_id, qpd.question_id
FROM user_profile AS up 
JOIN question_practice_detail AS qpd 
ON up.device_id=qpd.device_id) t
JOIN question_detail AS qd
ON qd.question_id=t.question_id
WHERE t.university="山东大学"
GROUP BY t.university, qd.difficult_level;

全部评论

相关推荐

程序员小白条:vibe你只要能cover住面试官问你很多深入的实现和选型方案的原因,以及怎么去检测优化效果的就行了
点赞 评论 收藏
分享
在评审的菠萝蜜很成熟:舵轮步兵多写点呗,第一个项目更像单纯算法内容了
在找工作求抱抱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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