同事有个需求,做个评分的功能,要求去掉两个最高分,去掉两个最低分,剩下的求平均分。
oracle有对应的max,min,last,first,可惜,这回是去掉两个,而不是去掉一个,或许人家国外就没有这样的评分方法,呵呵。
写了几种方法,原来是用row_number(),感觉麻烦,相比之下,认为这种方式最简单,借用了一下oracle的lag,lead函数。
SQL> select aname,ascore from a1;
ANAME ASCORE
---------- ----------
李四 7
李四 6
李四 6
李四 4
李四 3
李四 2
张三 &n

本文介绍了如何在Oracle数据库中通过SQL查询去除每个用户评分中的两个最高分和两个最低分,然后计算剩余评分的平均值。利用了lag和lead函数来获取每个用户评分的上下文信息。

203

被折叠的 条评论
为什么被折叠?



