题解 | 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') );

全部评论

相关推荐

完美的潜伏者许愿简历通过:我上表jd,请求封我做后端大将军的事,北京有消息了:竟然不许!!! 他们一定是看我没有实习,这才故意驳回我的请求!
点赞 评论 收藏
分享
头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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