当前位置:   article > 正文

rank() over, dense_rank() over, row_number() over的区别_rank() over 没有并列

rank() over 没有并列

rank() over, dense_rank() over, row_number() over的区别

  1. --ROW_NUMBER() OVER 不需要考虑并列,即使查询出来的数值相同也会进行连续排名
  2. SELECT NAME, STUNO, SUBJECT, SCORE, ROW_NUMBER() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) TO_RANK FROM SCOTT.STUDENTINFO;

  1. --RANK() OVER 查出条件后进行排名,成绩相同的两名是并列,下一位同学空出所占的名次
  2. SELECT NAME, STUNO, SUBJECT, SCORE, RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) TO_RANK FROM SCOTT.STUDENTINFO;

  1. --DENSE_RANK() OVER 查出条件后进行排名,成绩相同的两名是并列,下一位同学不空出所占的名次
  2. SELECT NAME, STUNO, SUBJECT, SCORE, DENSE_RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) TO_RANK FROM SCOTT.STUDENTINFO;

  1. --使用rank() over的时候,空值是最大的,如果排序字段为null,可能造成null字段排在最前面,影响排序结果
  2. SELECT NAME, STUNO, SUBJECT, SCORE, RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC NULLS LAST) TO_RANK FROM SCOTT.STUDENTINFO;

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

闽ICP备14008679号