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

全部评论

相关推荐

05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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