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 和第一个例子有些区别.

PERCENT_RANK的更多相关文章

  1. Hive函数:CUME_DIST,PERCENT_RANK

    参考自:大数据田地http://lxw1234.com/archives/2015/04/185.htm 数据准备: d1,user1, d1,user2, d1,user3, d2,user4, d ...

  2. Spark2 Dataset分析函数--排名函数row_number,rank,dense_rank,percent_rank

    select gender,       age,       row_number() over(partition by gender order by age) as rowNumber,    ...

  3. Hive学习之路 (十五)Hive分析窗口函数(三) CUME_DIST和PERCENT_RANK

    这两个序列分析函数不是很常用,这里也练习一下. 数据准备 数据格式 cookie3.txt d1,user1, d1,user2, d1,user3, d2,user4, d2,user5, 创建表 ...

  4. SQL Server ->> PERCENTILE_CONT、PERCENTILE_DISC 和 PERCENT_RANK 函数

    PERCENTILE_CONT和PERCENTILE_DISC都是为了计算百分位的数值,比如计算在某个百分位时某个栏位的数值是多少.他们的区别就是前者是连续型,后者是离散型.CONT代表continu ...

  5. oracle之percent_rank() over()函数和PERCENTILE_CONT() within group()over()函数详解

    创建一个临时表 create table EMP ( EMPNO NUMBER(4) not null, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER ...

  6. SQL Server 2012 新特性:其他

    安装期间的设置   为了强化角色分离,不自动在 sysadmin 固定服务器角色中设置 BUILTIN\administrators 和 Local System (NT AUTHORITY\SYST ...

  7. Oracle用法、函数备忘记录

    Listagg select * from emp select LISTAGG(ename,'-') within group (order by deptno desc) from emp; 可以 ...

  8. 理解OVER子句

    简介 Over子句在SQLServer 2005中回归,并且在2012中得到了扩展.这个功能主要结合窗口函数来使用:也可以在序列函数"NEXT VALUE FOR"使用.OVER子 ...

  9. Oracle 中的分析函数

    Oracle常用分析函数介绍(排名函数+窗口函数) 2014年11月30日 ⁄ 数据库 ⁄ 共 3903字 ⁄ 暂无评论 ⁄ 阅读 7,772 次 评级函数 常见评级函数如下: RANK():返回数据 ...

随机推荐

  1. 清除浮动4-插入多余的div

    <!doctype html><html> <head> <meta charset="UTF-8"> <meta name= ...

  2. 设置dt height 保证dd在同一行

    <html>   <head>   <meta charset="UTF-8">   <meta name="Author&qu ...

  3. Android 常用的常量

    常用的Android常量 1.Activity Action 字符串常量("android.intent.action."+)   描述ALL_APPS               ...

  4. java多线程向数据库中加载数据

    读取本地文件,每行为一条记录,文件大小550M,200万条数据.先将文件读取的内存中,再开启6个线程连接postgresql不同coordinator端口导入数据.代码如下: import java. ...

  5. Core Java Volume I — 4.10. Class Design Hints

    4.10. Class Design HintsWithout trying to be comprehensive or tedious, we want to end this chapter w ...

  6. html5实现饼图和线图-我们到底能走多远系列(34)

    我们到底能走多远系列(34) 扯淡: 送给各位一段话:     人生是一个不断做加法的过程     从赤条条无牵无挂的来     到学会荣辱羞耻 礼仪规范     再到赚取世间的名声 财富 地位    ...

  7. 横向滚动条展示 css

    <div class="shuaixuan" style="overflow:hidden;">    <div style="ov ...

  8. URAL 1085 Meeting(最短路)

    Meeting Time limit: 2.0 secondMemory limit: 64 MB K friends has decided to meet in order to celebrat ...

  9. hihoCoder #1301 : 筑地市场 (打表+构造)

    题目大意:问含有4或者7的第k大的正数是多少. 题目分析:1~10.1~100.1~1000...之间的含有4或者7的个数可以求出,这样就可以从高位到地位依次确定这个数的每一位上的值. 代码如下: # ...

  10. CentOS6.2 试用PHP HHVM

    关于HHVM的介绍 http://en.wikipedia.org/wiki/HipHop_Virtual_Machine http://www.hhvm.com/ https://github.co ...