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

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

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

SELECT
    temp.uid,
    COUNT(DISTINCT er.id) AS exam_cnt,
    COUNT(DISTINCT pr.id) AS question_cnt
FROM (
    SELECT uid
    FROM exam_record
    JOIN user_info USING (uid)
    JOIN examination_info USING (exam_id)
    WHERE tag = 'SQL' and difficulty = 'hard' and `level` = 7
    GROUP BY uid
    HAVING AVG(score) > 80
) AS temp  # 高难度SQL试卷得分平均值大于80并且是7级的红名大佬的uid
LEFT JOIN exam_record er
    ON temp.uid = er.uid AND YEAR(er.submit_time) = 2021  # 仅保留2021年的提交记录
LEFT JOIN practice_record pr
    ON temp.uid = pr.uid AND YEAR(pr.submit_time) = 2021  # 仅保留2021年的提交记录
GROUP BY uid
HAVING exam_cnt > 0  # 仅保留有试卷完成记录的用户
ORDER BY exam_cnt, question_cnt DESC

全部评论
求问大佬,为什么不可以使用count(distinct submit_time)计算试卷完成数和练习题数呀
点赞 回复
分享
发布于 2023-05-06 11:13 辽宁
求问,为什么用count(distinct question_id)运行出来的结果是错的?为什么要用id?id不应该是序列,唯一的吗?
点赞 回复
分享
发布于 2023-08-15 16:24 河南
滴滴
校招火热招聘中
官网直投

相关推荐

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