题解 | #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;

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务