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

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

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


select
t.tag,
t.difficulty,
round(
avg(t.score),1)
from (
select
e1.tag,
e1.difficulty,
e2.score,
max(e2.score)over(partition by e2.exam_id  ) as m,
min(e2.score)over(partition by e2.exam_id  ) as d
from  examination_info e1 left join exam_record e2 on e1.exam_id=e2.exam_id
where
e1.tag='SQL' and e1.difficulty='hard'
) as t 
WHERE
t.score!=t.d and t.score!=t.m

复杂的开窗,求出最大,最小值,分数不等于最大,最小值就可得到要求平均成绩的数据。

全部评论
这个写法没有考虑到有多个最大值或者多个最小值的情况吧
1 回复 分享
发布于 2021-10-31 13:16

相关推荐

01-20 16:54
郑州大学 Java
下一个更好呗:感觉小厂注重你做了什么,大厂注重你没做什么,欠缺什么。
投递字节跳动等公司8个岗位 >
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务