zoukankan      html  css  js  c++  java
  • PERCENT_RANK

    1. percent_rank() over (order by .....)
    返回某列或某列组合后每行的百分比排序
    如下:
    with cte as
    (
      SELECT ROWNUM as n
      FROM DUAL 
      CONNECT BY ROWNUM <= 10
    )
    select n,percent_rank() over (order by n) as prk
    from cte
    ;
    结果如下:

    图片

     PRK为每个N值的相对位置的百分比,该结果看起来会有些奇怪.10个数中的第2个数应该是排在20%才对,但却不是一个整数.

    其实内部的逻辑为:

    将n进行排序,注意第一位是0而不是1: 

     

    图片

     然后用它们的序号除以最大的序号则得到上述的结果.

    2.percent_rank(....) within group ....

    用来求某一个数在一个集合中的对应位置百分比:

    with cte as
    (
      SELECT ROWNUM as n
      FROM DUAL 
      CONNECT BY ROWNUM <= 10
    )
    select percent_rank(8) within group (order by n) as prk
    from cte
    ;

    结果:

     PRK
    0.7 

    这个是如何得到的呢?

    是将 (8-1)/10 和第一个例子有些区别.

  • 相关阅读:
    Daily Scrum 11.20
    Daily Scrum 11.19
    Daily Scrum 11.18
    Daily Scrum 11.17
    Daily Scrum 11.16
    Daily Scrum 11.15
    Loj10222佳佳的 Fibonacci
    CH3801Rainbow的信号
    js仓库。。。
    【UVa1635】Irrelevant Elements
  • 原文地址:https://www.cnblogs.com/champaign/p/5882037.html
Copyright © 2011-2022 走看看