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. magento-connect-manage出现404或者500内部错误的解决办法

    将网站根目录下的downloader文件权限改为755,将downloader下的index.php文件的权限改为644即可:

  2. oracle将多条数据合并成一条

    select  t.col1,t.col2  ,wmsys.wm_concat(t.col3||' ') AS col3 , wmsys.wm_concat(t.col4||'') as col4,w ...

  3. shell命令:给当前目录里一个文件压缩一份不包含.svn文件的zip包

    filepath=$(cd ")"; pwd) packagePath="$filepath"/package zipPath="$filepath& ...

  4. C# string[,]与string[][]的区别

    对于这两者的区别: 1.入门:string[,]可读可写,而string[][]与string[]相同,不可对第二位进行写操作 static void Main(string[] args) { // ...

  5. 解决:导入第三方jar包后,仍然出现java.lang.NoClassDefFoundError的错误

    最近,在运行某个Android工程的时候,一直抛出java.lang.NoClassDefFoundError异常. 按照异常所给出的信息,应该是程序使用到的第三方jar包出了问题. 但是,这些第三方 ...

  6. Android高效加载大图,多图解决方案,有效避免程序OOM异常

    收藏自:http://blog.csdn.net/guolin_blog/article/details/9316683 谷歌官方文档:http://developer.android.com/tra ...

  7. 使用Dnsmasq搭建本地dns服务器上网

    导读 搭建一个属于自己的本地DNS服务器很有必要,利用Dnsmasq来搭建一个属于自己的本地DNS服务器,享受更干净无污染.更智能快速和没有广告干扰的DNS解析服务. 一.Dnsmasq安装 安装并启 ...

  8. Web上下文配置【MvcConfig】

    基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论. 项目说明如下: 1.db.sql是项目中用到的表,数据库使用的是oracle11g ...

  9. Codeforces Round #121 (Div. 2)

    A. Funky Numbers 记\(a \le b\),枚举\(a\)即可. B. Walking in the Rain 二分时间,然后\(dp(i)\)表示是否能从1到达i. C. Dynas ...

  10. C/C++程序员必须熟练应用的开源项目(转-清风小阁)

    作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应 ...