美文网首页
oracle中的三个分组排名函数

oracle中的三个分组排名函数

作者: liuxiaolin | 来源:发表于2019-06-03 09:23 被阅读0次

    Oracle中的三种分组排名方法:

    1、row_number()  over( partition by 字段1  order by  字段2)

    这个排名函数生成的排名序列是连续且唯一的,比如字段2中有2个相同的数值时,它仍然会给它排出前后顺序。

    案例如下:

    ID             字段1            字段2         row_number

    01                A                   12                   1

    02                A                   18                    2

    02                 B                  18                    3

    03                C                   15                    4

    2、rank()  over(partition by 字段1  over by 字段2 )

    这个排名函数生成的排名序列是跳跃式的序列,比如字段2中有2个相同的数值时,它会给出相同的排名并,就此跳过,继续给出下一个进行排名。

    案例如下:

    ID             字段1            字段2              rank

    01                A                   12                   1

    02                A                   18                    2

    02                 B                  18                    2

    03                C                   15                    4

    可以看到,上面的排名序列中,3是空缺的。

    3、dense_rank()  over(partiton by  字段1  over by 字段2)

    这个排名函数也许连续的,第二名仍然会跟着第三名。

    案例如下:

    ID             字段1            字段2        dense_rank

    01                A                   12                   1

    02                A                   18                    2

    02                 B                  18                    2

    03                C                   15                    3

    相关文章

      网友评论

          本文标题:oracle中的三个分组排名函数

          本文链接:https://www.haomeiwen.com/subject/liuqxctx.html