在Oracle SQL上仅排除一个MIN值

在Oracle SQL上仅排除一个MIN值,第1张

在Oracle SQL上仅排除一个MIN值

为此,您必须以某种方式将它们分开;您当前的问题是,最低的2个分数相同,因此对两个值进行的任何(不等式)运算都会对另一个值进行相同的处理。

您可以使用诸如分析查询之类的方法

ROW_NUMBER()
来唯一标识行:

select id, sum(score) / count(score) as score  from ( select id, score, row_number() over (order by score) as score_rankfrom gamescore          where gameno = 1     ) where score_rank <> 1 group by id

ROW_NUMBER()

以order_by_clause中指定的行的有序序列为唯一的编号分配给它要应用到的每一行(分区中的每一行或查询返回的每一行)。

由于ORDER BY子句升序排列在SCORE上,因此最低分数之一将被删除。除非您将其他平局条件添加到ORDER BY,否则这将是一个随机值。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4953560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存