当前位置:   article > 正文

rank() over和row_number() over_rank over和row number over

rank over和row number over

ITPUB上,看到BITI这么说:

 

关于 rank() over 与 row_number() over

刚才在 电子杂志中看见了利用rank实现top n
偶只想提醒一点:

我们通常意义上的top N 的实现应该采用row_number() over 而不是rank
因为row_number 是给记录加一个序号标记
而rank是相当于进行排序后的排名,也就是如果排序列是相同的,那么他们的返回值也是相同的,而row_number则不可能返回相同值

SQL> select * from test;

         A
----------
         1
         2
         1

SQL> select a,rank() over(order by a) from test;

         A RANK()OVER(ORDERBYA)
---------- --------------------
         1                    1
         1                    1
         2                    3

SQL> select a,row_number() over(order by a) from test;

         A ROW_NUMBER()OVER(ORDERBYA)
---------- --------------------------
         1                          1
         1                          2
         2                          3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/240775
推荐阅读
相关标签
  

闽ICP备14008679号