全站数据
8 4 2 0 5 8 1

oracle中的keep和over的区别

叽里呱啦玩英语 | 教育先行,筑梦人生!         
问题更新日期:2024-12-14 11:26:48

问题描述

oracle中的keep和over的区别求高手给解答
精选答案
最佳答案

keep就是个关键字,指明后面的括号里是按照指定规则排名的top 1或bottom1,因为是dense_rank排名,所以可能有重复的,外面用min/max那么只返回一个值,比如用sum可能汇总多个相同值。ver指定分区,如果没有over则是对所有行应用一次分析函数,因此结果就一行,有over并且指定了分区,那么分析函数的计算范围就在此分区内,对此分区每一行都使用分析函数,分区内的每一行的分析函数值是一样的,而且最终返回的行和总行数相同。或有over里面没有分区则是对每一行应用分析函数,计算范围是所有行,因此所有行返回的分析函数值都一样。

当然还可以与group by结合,那就很复杂了,也很常见,反正这个函数就是求top1或bottom1的。