PL/SQL练习题三(分析函数)
2016-04-09 16:08
375 查看
使用Oracle提供的sample数据。
查询每个员工在自己部门中的工资排名
Display the 2nd highest paid employee in each department.
注意这里不要想去掉子查询。rank()和开窗函数好像不能一起使用。
查询每个员工在自己部门中的工资排名
SELECT empno,ename,COUNT(*) OVER (PARTITION BY deptno ORDER BY sal) FROM emp;或
select deptno,empno,ename, sal,rank() over (partition by deptno order by sal desc) as rank_value from emp
Display the 2nd highest paid employee in each department.
SELECT dep_id,emp_id FROM ( SELECT dep_id,RANK() OVER (PARTITION BY dep_id ORDER BY salary DESC) rank_num,emp_id FROM employee) WHERE rank_num <= 2
注意这里不要想去掉子查询。rank()和开窗函数好像不能一起使用。
相关文章推荐
- 数据库系统原理设计--论坛系统
- powerDesigner 连接Oracle 报Unable to connect SQLState=08004 解决方法
- SQLServer函数 left()、charindex()、stuff()的使用
- solr5.5之从数据库中导入数据并建立索引
- 数据库时间转换
- MySQL命令行登录的例子
- Mysql安全机制
- SQL2008创建订阅报错:使用存储过程sp_dropdistributor,或使用禁用发布和分发向导
- Ubuntu下彻底卸载mysql
- mysqldb 安装
- PL/SQL练习题二(常用函数)
- ubuntu下自动备份mysql数据库
- MySQL相关问题总结
- 整理:数据库设计的六个阶段详解
- mysql常用函数汇总
- MySQL SQL优化
- oracle 汉字 order by方法
- Oracle日期范围查询交叉查询方法
- 初识NoSQL
- MySQL中常用的SQL Mode