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

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

https://www.nowcoder.com/practice/a690f76a718242fd80757115d305be45

一开始想的是这么写,奈何一直报语法错误,不知道该怎么查出最大的row_number然后放在where条件中

SELECT 
tag, difficulty, AVG(score) clip_avg_score
FROM
(
	SELECT
		tag, difficulty, score,
		ROW_NUMBER() over (PARTITION BY tagORDER BY score) AS rn
	FROM examination_info info
	RIGHT JOIN exam_record record ON info.exam_id = record.exam_id
	WHERE tag = 'SQL' AND difficulty = 'hard' AND score IS NOT NULL
) t
WHERE rn > 1 AND rn < MAX(rn)
GROUP BY tag, difficulty

ChatGPT给出了解决方案

WITH HighDifficultySQL AS (
    SELECT
        e.tag,
        e.difficulty,
        r.score,
        ROW_NUMBER() OVER (PARTITION BY e.exam_id ORDER BY r.score) AS rn
    FROM examination_info e
    JOIN exam_record r ON e.exam_id = r.exam_id
    WHERE e.tag = 'SQL' AND e.difficulty = 'hard' AND r.score IS NOT NULL
)
SELECT tag, difficulty, AVG(score) AS clip_avg_score
FROM HighDifficultySQL
WHERE rn > 1 AND rn < (SELECT MAX(rn) FROM HighDifficultySQL)
GROUP BY tag, difficulty;

全部评论

相关推荐

沉淀去了,8月是不是机会会多一点,。打招呼300+,就一个小厂面试,聊了十分钟天就让我去了,暑假继续沉淀了,到八月九月冲了
丰川打工祥:我目前的体感是,双非本+一段小厂实习,基本约不到中厂的面。已经开始第二段小厂了。可能的确是最近hc太少了。
点赞 评论 收藏
分享
06-11 13:34
门头沟学院 C++
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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