• oracle三个排序函数的联系与区别ROW_NUMBER() 、RANK()、DENSKRANK ()


    三个排序函数的区别(简单版)

    1.ROW_NUMBER

    2.RANK

    3.DENSKRANK 

    这三个函数都是依托窗口函数进行的分组后的排序,对于排序的特点有些细节的区别

    现有product表数据如下

    1. ROW_NUMBER() 就是简单地按照Partition by要分组的字段排序,若order by后的字段值相同会区分出大小(原则不详),整体来说是的由1到N的排序

    select t.*,row_number() over (partition by product_type order by sale_price) from product t

    2.Rank()相同合为一,跳跃排序。如果三个人,由两个人相同,则会显示1,2,2,4

    select t.*,rank() over (partition by product_type order by sale_price) from product t

    3.DENSE_RANK相同为合一,连续排序。如果三个人中有两个相同,则会显示1,2,2,3

    select t.*,dense_rank() over (partition by product_type order by sale_price) from product t

  • 相关阅读:
    ABAP Code Inspector那些隐藏的功能,您都知道吗?
    L2-017. 人以群分
    L2-007. 家庭房产
    L2-014. 列车调度
    L2-004. 这是二叉搜索树吗?
    过山车
    hdu 3746 Cyclic Nacklace
    hdu 1867 A + B for you again
    hdu 1686 Oulipo
    Orders
  • 原文地址:https://www.cnblogs.com/thomasbc/p/15672366.html
Copyright © 2020-2023  润新知