- 浏览: 1276083 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (471)
- Database (29)
- Java (47)
- Frameworks (9)
- JavaScript (30)
- Others (27)
- ExtJS (26)
- Linux (49)
- Windows (11)
- Web (8)
- Ubunt (9)
- Shell (21)
- MySQL (26)
- Redis (9)
- Git (6)
- Maven (29)
- Python (3)
- Nginx (10)
- Nodejs (7)
- Network (1)
- GO (2)
- Docker (36)
- MongoDB (5)
- Intellij idea (7)
- Ruby (3)
- Weblogic (3)
- CSS (15)
- VMware (3)
- Tomcat (6)
- Cache (2)
- PHP (8)
- Mac (7)
- jQuery (3)
- Spring (8)
- HTML5 (2)
- Kubernetes (8)
最新评论
-
masuweng:
Intellij idea 主题下载网址 -
mimicom:
还有一个情况, 也是连不上 2018-05-06T06:01: ...
docker-compose 部署shipyard -
lixuansong:
put()方法调用前必须先手动调用remove(),不然不会实 ...
JavaScript创建Map对象(转) -
jiao_zg22:
方便问下,去哪里下载包含Ext.ux.TabCloseMenu ...
Ext.ux.TabCloseMenu插件的使用(TabPanel右键关闭菜单) 示例 -
netwelfare:
对于基本类型的讲解,文章写的有点简单了,没有系统化,这篇文章介 ...
Java 基础类型范围
rank() function in application
场景:使用oracle scott/tiger 登录 使用emp表
1)取出各部门工资小于各部门平均工资80%的员工
2)取出各部门工资排名第二名的员工
rank() 函数返回结果集分区内指定字段的值的排名,指定字段的值的排名是相关行之前的排名加一。
语法:
RANK() OVER([<partiton_by_clause>]<order by clause>)
partition_by_clause 将from子句生成的结果集划分为应用到RANK函数的分区。
Order_by_clause确定将RANK值应用到分区中的行时所使用的顺序。
表结构:
-- Create table 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) ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table EMP add constraint PK_EMP primary key (EMPNO) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); alter table EMP add constraint FK_DEPTNO foreign key (DEPTNO) references DEPT (DEPTNO);
抽取emp数据:
prompt PL/SQL Developer import file prompt Created on 2011年5月27日星期五 by David set feedback off set define off prompt Disabling foreign key constraints for EMP... alter table EMP disable constraint FK_DEPTNO; prompt Loading EMP... 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, 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, 300, 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, 500, 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, 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, 1400, 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, 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, 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, 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, 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, 0, 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, 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, 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, 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, null, 10); commit; prompt 14 records loaded prompt Enabling foreign key constraints for EMP... alter table EMP enable constraint FK_DEPTNO; set feedback on set define on prompt Done.
解决方案 SQL:
1)
select a.deptno,a.ename,a.sal,b.avgsal from emp a, (select t.deptno, avg(t.sal) * 0.8 as avgSal from emp t group by t.deptno) b where a.deptno = b.deptno and a.sal < b.avgSal order by a.deptno;
或者:
select a.deptno,a.ename,a.sal,a.avgsal from (select t.*, avg(t.sal) over(partition by t.deptno) * 0.8 as avgSal from emp t) a where sal < avgsal
结果:
1 10 MILLER 1300.00 2333.33333333333
2 20 SMITH 800.00 1740
3 20 ADAMS 1100.00 1740
4 30 WARD 1250.00 1253.33333333333
5 30 MARTIN 1250.00 1253.33333333333
6 30 JAMES 950.00 1253.33333333333
2)
select b.deptno,b.ename,b.sal from (select a.*, rank() over(partition by a.deptno order by a.sal desc) ra from emp a) b where b.ra = 2;
结果:
1 10 CLARK 2450.00
2 30 ALLEN 1600.00
其中部门号为20的部门工资中有两个并列第一,所以没有第二名。
发表评论
-
Srping配置阿里数据库连接池(Druid)
2015-10-19 13:49 2083Srping配置阿里数据库连接池(Druid) POM. ... -
Oracle 常用函数
2015-08-27 16:08 1080Oracle 常用函数 获取前10个小时的时间: sel ... -
Linux安装MYSQL(手工编译)
2015-08-02 14:22 3673Linux安装MYSQL(手工编译) 创建目录 ... -
Oracle 存储过程中打印SQL影响的行数
2015-07-07 11:41 1751Oracle 存储过程中打印SQL影响的行数 db ... -
更新多个字段的UPDATE语句
2015-06-19 16:18 4030更新多个字段的UPDATE语句 ... -
解决HSQL中java.lang.NoClassDefFoundError:java/sql/Savepoint错误
2011-07-16 09:35 1577解决HSQL中 java.lang.NoClassDefFo ... -
Oracle Statements
2011-05-23 09:33 633Oracle Statements --crea ... -
Each score of subjects is bigger than a number
2011-05-08 18:31 1291Each score of subjects is bigge ... -
DB2 Statements
2011-04-14 16:58 1165DB2 Statements 生成1-8之间的随机整数 ... -
数据表纵转横
2010-01-26 15:18 1915数据表纵转横 方法一: --创建函数与类型 cre ... -
Oracle优化器Optimizer详解(转)
2010-01-13 11:24 2422Oracle优化器Optimizer详解(转) ... -
PreparedStatement中setString方法的异常(转载)
2010-01-08 11:00 2152PreparedStatement中setString方法的异 ... -
oracle 实现 split 函数
2010-01-05 10:46 3055oracle 实现 split 函数 CREATE O ... -
row_number()over函数的使用(转)
2009-12-16 16:05 1945row_number()over函数的使用(转) ... -
Oracle随机函数
2009-11-25 18:05 3927Oracle随机函数 --创建55到100之间随机数( ... -
Oracle取整的函数
2009-11-25 18:05 2918Oracle取整的函数 1.取整(大) sel ... -
Oracle rownum使用经验总结
2009-11-25 17:38 1617Oracle rownum使用经验总 ... -
Oracle TIMESTAMP 的使用
2009-11-13 17:15 4211Oracle TIMESTAMP 的使用 TIMEST ... -
使用预编译语句设置null值(preparedStatement.setObject)
2009-10-22 16:40 3280使用预编译语句设置null值(preparedStatemen ... -
ORACLE 常用命令
2009-10-20 15:52 1397ORACLE 常用命令 1.用命令行执行一个.sq ...
相关推荐
Low-rank matrix recovery via smooth rank function and its application in image restoration
STABLE AVERAGES OF CENTRAL VALUES OF RANKIN-SELBERG L-FUNCTIONS SOME NEW VARIANTS.pdf
改良的Rankin量表.pdf改良的Rankin量表.pdf改良的Rankin量表.pdf改良的Rankin量表.pdf改良的Rankin量表.pdf
Solutions of Hackerrank challenges in various languages -
详解内存数据总线与single rank dual-rank之间的关系
web rank webpage rank using different categories and terms occured more time in webpage
改良的Rankin量表.doc
task, the ranking model is de¯ned as a function of not only the contents (features) of objects but also the relations be- tween objects. The paper further focuses on one setting of the learning ...
通过TextRank算法来对中文文章进行分词或者分句,还有停用词过滤的功能。用一种基于图的算法来给分好的词句评分,最终根据分数高低输出该文章中最关键的词句
Algorithm-HackerRank-Solutions-In-Scala.zip,在scala中解决hackerrank的挑战,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
If the Rank Margin Tool option in BIOS is enabled, the platform will automatically enter Rank Margin test mode. The test results are output by serial port, it can detect the margin of the motherboard...
TextRank;关键词提取;摘要提取
TextRank, TextRank算法提取关键词的Java实现
著名的排序算法RankSVM,MATLAB语言。参考http://www.cnblogs.com/bentuwuying/p/6683832.html。
低秩估计的介绍数据,对低秩估计的原理,算法和应用进行了介绍
该PDF是英文版的,主要介绍了TextRank算法的实现
赠送jar包:rank-eval-client-6.2.3.jar; 赠送原API文档:rank-eval-client-6.2.3-javadoc.jar; 赠送源代码:rank-eval-client-6.2.3-sources.jar; 赠送Maven依赖信息文件:rank-eval-client-6.2.3.pom; 包含...
encompasses many well known techniques in data analysis, such as nonnegative matrix factorization, matrix completion, sparse and robust PCA, k-means, k-SVD, and maximum margin matrix factorization. ...
MS SQL 2005 四个排序函数ROW_NUMBER、RANK、DENSE_RANK 和 NTILE简介用法结果排名排序
learning to rank by maximumizing likelihood function