-
sql高级查询
-
row_number()over(partition by dpetno order by salary) row_i
-
按部门分组,每个部门根据工资高低倒序排列,每个部门的排列顺序在最后一个显示(列名:row_id),排序无重复
显示部门名称 员工名称
select d.dname,e.ename,e.deptno,e.salary,e.comm,ROW_NUMBER()over(partition by e.deptno order by e.salary desc) emp_id from emp e, dept d where e.deptno = d.deptno
-
-
rank() over(partition by nvl(e.deptno,150) order by e.salary desc) row_id
- 按部门分组,每个部门根据工资高低倒序排列,每个部门的排列顺序在最后一个显示(列名:row_id),排序存在并列名次,(列名:row_id)跳跃排序(1 2 2 4)
显示部门名称 员工名称
select d.dname,e.ename,rank() over(partition by nvl(e.deptno,150) order by e.salary desc) row_id from emp e, dept d where e.deptno = d.deptno
- 按部门分组,每个部门根据工资高低倒序排列,每个部门的排列顺序在最后一个显示(列名:row_id),排序存在并列名次,(列名:row_id)跳跃排序(1 2 2 4)
- dense_rank 排序存在并列名次,(列名:row_id)不会跳跃排序(1 2 2 3)
-
-
2
-
2
- 2
- 2