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

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

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;

全部评论

相关推荐

鲸鸿:实习协议不用管签多久,要走的时候提前三天说就可以了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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