Oracle分析函数PERCENTILE_CONT
查询各部门中薪水分布处于25%、50%、75%位置的人的薪水,percent_rank()是确定排行中的相对位置。
create table EMP
(
EMPNO NUMBER(4) not null,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800.00, null, 20);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600.00, 300.00, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250.00, 500.00, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975.00, null, 20);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250.00, 1400.00, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850.00, null, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, to_date('09-06-1981', 'dd-mm-yyyy'), 2450.00, null, 10);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000.00, null, 20);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000.00, null, 10);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500.00, 0.00, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100.00, null, 20);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950.00, null, 30);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000.00, null, 20);
insert into emp (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300.00, null, 10);
commit;
SQL> select e.ename,e.sal,e.deptno,
percent_rank() over(partition by deptno order by sal desc) p_rank,
PERCENTILE_CONT(0) within group(order by sal desc)
over(partition by deptno) max_sal ,
PERCENTILE_CONT(0.25) within group(order by sal desc)
over(partition by deptno) max_sal_25,
PERCENTILE_CONT(0.5) within group(order by sal desc)
over(partition by deptno) max_sal_50,
PERCENTILE_CONT(0.75) within group(order by sal desc)
over(partition by deptno) max_sal_75
from emp e;
ENAME SAL DEPTNO P_RANK MAX_SAL MAX_SAL_25 MAX_SAL_50 MAX_SAL_75
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
KING 5000 10 0 5000 3725 2450 1875
CLARK 2450 10 .5 5000 3725 2450 1875
MILLER 1300 10 1 5000 3725 2450 1875
SCOTT 3000 20 0 3000 3000 2975 1100
FORD 3000 20 0 3000 3000 2975 1100
JONES 2975 20 .5 3000 3000 2975 1100
ADAMS 1100 20 .75 3000 3000 2975 1100
SMITH 800 20 1 3000 3000 2975 1100
BLAKE 2850 30 0 2850 1575 1375 1250
ALLEN 1600 30 .2 2850 1575 1375 1250
TURNER 1500 30 .4 2850 1575 1375 1250
WARD 1250 30 .6 2850 1575 1375 1250
MARTIN 1250 30 .6 2850 1575 1375 1250
JAMES 950 30 1 2850 1575 1375 1250
已选择14行。
SQL> select e.ename,e.sal,e.deptno,
percent_rank() over(partition by deptno order by sal) p_rank,
PERCENTILE_CONT(0) within group(order by sal)
over(partition by deptno) max_sal ,
PERCENTILE_CONT(0.25) within group(order by sal)
over(partition by deptno) max_sal_25,
PERCENTILE_CONT(0.5) within group(order by sal)
over(partition by deptno) max_sal_50,
PERCENTILE_CONT(0.75) within group(order by sal)
over(partition by deptno) max_sal_75
from emp e;
ENAME SAL DEPTNO P_RANK MAX_SAL MAX_SAL_25 MAX_SAL_50 MAX_SAL_75
---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
MILLER 1300 10 0 1300 1875 2450 3725
CLARK 2450 10 .5 1300 1875 2450 3725
KING 5000 10 1 1300 1875 2450 3725
SMITH 800 20 0 800 1100 2975 3000
ADAMS 1100 20 .25 800 1100 2975 3000
JONES 2975 20 .5 800 1100 2975 3000
SCOTT 3000 20 .75 800 1100 2975 3000
FORD 3000 20 .75 800 1100 2975 3000
JAMES 950 30 0 950 1250 1375 1575
MARTIN 1250 30 .2 950 1250 1375 1575
WARD 1250 30 .2 950 1250 1375 1575
TURNER 1500 30 .6 950 1250 1375 1575
ALLEN 1600 30 .8 950 1250 1375 1575
BLAKE 2850 30 1 950 1250 1375 1575
已选择14行。
Oracle分析函数PERCENTILE_CONT相关推荐
- oracle 百分位数,Oracle分析函数PERCENTILE_CONT
查询各部门中薪水分布处于25%.50%.75%位置的人的薪水,percent_rank()是确定排行中的相对位置. 查询各部门中薪水分布处于25%.50%.75%位置的人的薪水,percent_ran ...
- oracle 数据分析函数,ORACLE分析函数(一)
ORACLE分析函数(1) 分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和 ...
- Oracle分析函数巧妙使用
在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...
- Oracle分析函数——函数列表
--------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...
- Oracle分析函数六——数据分布函数及报表函数
Oracle分析函数--数据分布函数及报表函数 CUME_DIST 功能描述:计算一行在组中的相对位置,CUME_DIST总是返回大于0.小于或等于1的数,该数表示该行在N行中的位置.例如,在一个3行 ...
- Oracle分析函数一——函数列表
Oracle 分析函数 Oracle 分析函数--函数列表 SUM : 该函数计算组中表达式的累积和 MIN : 在一个组中的数据窗口中查找表达式的最小值 MAX ...
- Oracle分析函数、多维函数和Model函数简要说明,主要针对BI报表统计
以下代码均经过测试,可直接运行 Oracle分析函数.多维函数和Model函数简要说明,主要针对BI报表统计,不一定很全面,但对BI应用场景做了少许说明 --创建一张销售数量表,数据趋势是递增的 CR ...
- Oracle分析函数使用总结
Oracle分析函数使用总结 1.使用评级函数 评级函数(ranking function)用于计算等级.百分点.n分片等等,下面是几个常用到的评级函数: RANK():返回数据项在分组中的排名.特点 ...
- Oracle分析函数大全
分析函数又叫开窗函数,OLAP函数等,因为有人问我用过开窗函数没,呵,什么是开窗函数,从来没听过,难道是分析函数么.哈哈,最后还真是分析函数哦!用过的东西别名也应该知道,赶上这么个事,就剽窃一眼Ora ...
最新文章
- Linux多任务编程之五:exit()和_exit()函数(转)
- (二)企业部分之lnmp环境的搭建:mysql源码安装
- 使用级联功能实现蓝绿部署和金丝雀发布
- 从 k8s 上卸载 KubeSphere
- ReactNative ES6简介 及基本语法第一篇
- 电子商务应用课程知识整理 第五章-搜索引擎优化(SEO)
- VS2012无法安装cocos2d-x-2.1.4 解决方法及VS2012新建coco2d-x项目(一)
- webjs求数组的中位数‘_算法:一道常见的数组题,但很多人却写不出来(JAVA)...
- Android逆向笔记-某水果大作战内购破解思路
- MFC开发-MFC Edit Control 捕捉回车用法
- MFC工作笔记0008---UDP协议通信_sendto 和 recvfrom 浅析与示例
- 使用xcode4做ios的国际化
- 关于【apache- tomcat- 5.5.15/conf /Catalina/localhost配置虚拟目录】时的一些问题。(配置web项目的方式不止一种,虚拟目录就是一个)
- iframe中嵌入报表
- 我的VSTO之路(四):深入介绍Word开发
- unbuntu基本操作
- alist搭建云盘管理程序。
- 若依ajax返回数据,若依管理系统RuoYi-Vue(二):权限系统设计详解
- 顺序表的基本操作(增删改查)——C语言
- C++ 快速学习(一)
热门文章
- python uppercase函数_字符串-短rot13函数-Python
- socket套接字各个接口
- php ajax 考试倒计时,ajax实现在线考试倒计时
- 《经济的律动》徐远(作者)epub+mobi+azw3格式下载
- 函数参数里*argvs和**kwargs的区别
- 福特锐界2021plus保险盒保险丝说明
- 山东高速资产注入承诺何时兑现 期待画饼成真
- python计算等差数列_python 等差数列末项计算方式
- 国科大学习资料--人工智能原理与算法-第一次作业解析(学长整理)
- Clear Type之父谈阅读革命(转载)