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

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

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

SELECT 
    t1.uid,
    t1.exam_cnt AS exam_cnt,
    IFNULL(t2.question_cnt, 0) AS question_cnt
FROM (
    SELECT 
        uid,
        COUNT(submit_time) AS exam_cnt
    FROM exam_record 
    WHERE YEAR(submit_time) = 2021
    GROUP BY uid
) t1
LEFT JOIN(
    SELECT
        uid,
        COUNT(submit_time) AS question_cnt
    FROM practice_record 
    WHERE YEAR(submit_time) = 2021
    GROUP BY uid
) t2
    ON t1.uid = t2.uid
WHERE t1.uid IN(
    SELECT ui.uid
    FROM user_info ui
    JOIN exam_record er ON ui.uid = er.uid
    JOIN examination_info ei ON er.exam_id = ei.exam_id
    WHERE tag = 'SQL' and difficulty = 'hard' and level = 7
    GROUP BY ui.uid
    HAVING AVG(score) > 80 
)
ORDER BY exam_cnt, question_cnt DESC

实在是非常麻烦,很多细节......,尽量把筛选的条件凑到一块,使用WHERE IN子句吧。

全部评论

相关推荐

2025-11-15 14:35
南京邮电大学 Java
程序员牛肉:你这简历有啥值得拷打的?在牛客你这种简历一抓一大把,也就是个人信息不一样而已。 关键要去找亮点,亮点啊,整个简历都跟流水线生产出来的一样。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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