题解 | #满足条件的用户的试卷完成数和题目练习数#

满足条件的用户的试卷完成数和题目练习数

https://www.nowcoder.com/practice/5c03f761b36046649ee71f05e1ceecbf

select t1.uid
        ,count(distinct er1.id) AS exam_cnt
        ,count(distinct pr1.id) AS question_cnt
from
(/*先过滤出红名大佬t1*/
    select distinct er.uid
    from exam_record er
    left join user_info ui on er.uid = ui.uid
    left join examination_info ei on er.exam_id = ei.exam_id
    where tag = 'SQL' and difficulty = 'hard' and level = 7
    group by uid
    having avg(score)>80
)t1
left join exam_record er1 on t1.uid = er1.uid and year(er1.submit_time) = 2021
left join practice_record pr1 on t1.uid = pr1.uid and year(pr1.submit_time) = 2021
group by uid
order by count(distinct er1.id) asc
        ,count(distinct pr1.id) desc

1、先筛选出红名大佬,保存在临时表t1中

2、t1分别和试卷表和练习表左连接,按照uid分组,可以统计各红名大佬的答题情况

3、计算答题次数时,用distinct id才可以统计准确,如果用distinct exam_id或者distinct uid,存在用户答题过两次并且满足条件,就会被计算成答题一次,因此用答题记录的唯一id来统计答题次数更准确

全部评论

相关推荐

05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
如题,只有过一段小厂实习经历,秋招会很吃亏吗?
陈100:你觉得你进入小厂实习后,实习前和实习后技术水平有提升没? 有的话,肯定有帮助
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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