题解 | #验证刷题效果,输出题目真实通过率#

验证刷题效果,输出题目真实通过率

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

我给大家翻译翻译,题目三个指标我理解的意思是:
以一个question_id为一道题,每道题用户可以提交多次。

question_pass_rate :  每个用户的不同题目通过率,统计的是用户答过多少道题。每个有1的question_id 加总除以 question_id去重加总 
pass_rate:每个用户的答题通过率,统计的是用户答对过多少次题,有1的题目数除以答过的题目总数。
question_per_cnt:每个用户的平均答题数。总答题数/用户答过的题目种类

 的用户的提交正确率 pass_rate 与每题目平均提交次数 question_per_cnt。
题目要求筛选出 : question_pass_rate > 60% 
每个用户的不同题目通过率 > 0.6


SELECT d1.user_id,
cnt/COUNT(distinct d1.question_id) question_pass_rate ,  #每个用户的不同题目提交通过率 SUM(IF(result_info = 1,1,0))/COUNT(d1.question_id) pass_rate  ,# 每个用户的提交通过率 COUNT(d1.question_id)/COUNT(DISTINCT d1.question_id) question_per_cnt  #每个用户的平均提交数
FROM done_questions_record d1
LEFT JOIN 
(SELECT  user_id,sum(res) cnt  FROM #统计用户答过的题目内一共答对了几道题。 
 (
 #知道最后结果是什么,但没办法统计一共多少题最终状态是答对的。
    SELECT user_id,question_id ,MAX(result_info) 'res'   #有答题,且最终状态是1,
      FROM done_questions_record  
GROUP BY user_id,question_id
 ) T
GROUP BY user_id
) d2
on d1.user_id=d2.user_id
GROUP BY user_id
HAVING question_pass_rate > 0.6

全部评论
视频解说说得很烂
2 回复
分享
发布于 2022-10-03 18:00 广东
这题真的抽象
1 回复
分享
发布于 2022-09-02 11:13 陕西
联易融
校招火热招聘中
官网直投
理解题目占了解题的绝大多数时间。
点赞 回复
分享
发布于 2022-09-02 14:25 广东

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务