题解 | SQL类别高难度试卷得分的截断平均值

# CTE法
# WITH zongbiao AS (
#     SELECT ei.exam_id, ei.tag, ei.difficulty, er.score
#     FROM examination_info AS ei
#     INNER JOIN exam_record AS er
#     ON ei.exam_id = er.exam_id
#     WHERE ei.tag = 'SQL' AND ei.difficulty = 'hard'
# ),
# min_max_score AS(
#     SELECT z.tag, MAX(z.score) AS max_score, MIN(z.score) AS min_score
#     FROM zongbiao AS z
#     GROUP BY z.tag
# )
# SELECT z.tag, z.difficulty, ROUND(AVG(z.score), 1) AS clip_avg_score
# FROM zongbiao AS z
# INNER JOIN  min_max_score AS mm
# ON z.tag = mm.tag 
# AND z.score > mm.min_score
# AND z.score < mm.max_score
# GROUP BY z.tag, z.difficulty;

# 一步到位使用子查询法
SELECT ei.tag, ei.difficulty, ROUND(AVG(er.score), 1) AS clip_avg_score
FROM examination_info AS ei
INNER JOIN exam_record AS er
ON ei.exam_id = er.exam_id
WHERE ei.tag = 'SQL' AND ei.difficulty = 'hard'
AND er.score != (SELECT MAX(er.score) FROM exam_record AS er
                 WHERE ei.exam_id IN (SELECT exam_id FROM examination_info WHERE difficulty  = 'hard' AND tag = 'SQL') )
AND er.score != (SELECT MIN(er.score) FROM exam_record AS er
                 WHERE ei.exam_id IN (SELECT exam_id FROM examination_info WHERE difficulty  = 'hard' AND tag = 'SQL') );

全部评论

相关推荐

Java大菜狗:纯纯招黑奴,一天还不到两百那么多要求,还不迟到早退,以为啥啊,给一点工资做一堆活,还以不拖欠员工工资为荣,这是什么值得骄傲的事情吗,纯纯***公司
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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