zoukankan      html  css  js  c++  java
  • [z]一个SQL语句分清楚RANK(),DENSE_RANK(),ROW_NUMBER()三个排序的不同

    转自:http://blog.csdn.net/s630730701/article/details/51902762

    在SCOTT用户下,执行下面SQL;

    SELECT 

    s.deptno,s.ename,s.sal,
    RANK() over(partition by s.deptno order by s.sal) as rank,
    DENSE_RANK() over(partition by s.deptno order by s.sal) as dense_rank,
    ROW_NUMBER() over(partition by s.deptno order by s.sal) as row_number
    FROM emp s;

    这是一个查询每个部门员工工资的排序情况

    从查询结果中很明显的发现规律:

    RANK()                        发生不持续的编号 例如数据值 1,2,2,3 发生的编号将是1,2,2,4

    DENSE_RANK()        发生持续的编号 例如数据值 1,2,2,3 发生的编号将是1,2,2,3

    ROW_NUMBER()     发生持续的编号(不重复) 例如数据值 1,2,2,3 发生的编号将是1,2,3,4

    RANK()  和 DENSE_RANK() 排序的差异就是排序存在并列的情况下。
  • 相关阅读:
    javascript基础案例解析
    Javascript正则
    Javascript数组
    JS函数
    数据类型转换
    flex弹性布局
    css基础5
    css基础4
    场景化支付对现有技术、业务、产品和风险产生深刻的影响
    场景化支付的关键技术
  • 原文地址:https://www.cnblogs.com/jjj250/p/9458746.html
Copyright © 2011-2022 走看看