题解 | #SQL类别高难度试卷得分的截断平均值#
SQL类别高难度试卷得分的截断平均值
https://www.nowcoder.com/practice/a690f76a718242fd80757115d305be45
## 使用row_number()窗口函数获取排名(不重复,不跳过,保证只减去第一个最大值和最小值) SELECT tag, difficulty, ROUND(AVG(score),1) AS clip_avg_score FROM( SELECT er.exam_id, score, tag, difficulty, ROW_NUMBER() OVER (PARTITION BY tag,difficulty ORDER BY score DESC) AS high_rank, ROW_NUMBER() OVER (PARTITION BY tag,difficulty ORDER BY score) AS low_rank FROM exam_record er JOIN examination_info ei USING(exam_id) WHERE tag = 'SQL' AND difficulty = 'hard' AND score IS NOT NULL ) AS t1 WHERE high_rank <> 1 and low_rank <> 1 GROUP BY tag,difficulty