您的位置:首页 > 数据库

PL/SQL练习题三(分析函数)

2016-04-09 16:08 375 查看
使用Oracle提供的sample数据。

查询每个员工在自己部门中的工资排名

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()和开窗函数好像不能一起使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: