<span style="font-size:18px;">最近精力比较有限,有些常用的东西就先记录下来。方便以后自己查阅和总结。</span>
一个哥们想要实现如下效果:
DEPTNO ENAME SAL TOP3 部门工资 排序
---------- ---------- ---------- ----------
20 KING 5000 1 8750 2
20 CLARK 2450 2 8750 2
20 MILLER 1300 3 8750 2
10 SCOTT 3000 1 8975 1
10 FORD 3000 2 8975 1
10 JONES 2975 3 8975 1
30 BLAKE 2850 1 5950 3
30 ALLEN 1600 2 5950 3
30 TURNER 1500 3 5950 3
select deptno,
ename,
sal,
sum(sal) over(partition by deptno order by deptno) as sumsal
from emp查询的结果集:第二步,我们就要实现最终的功能,附上SQL:
select deptno,
ename,
sal,
sumsal,
row_number() over(partition by deptno order by sal) as "部门内排名",
dense_rank() over(order by sumsal) as "部门排名"
from (select deptno,
ename,
sal,
sum(sal) over(partition by deptno order by deptno) as sumsal
from emp)
图片显示的效果,就是我们想要的最终结果。以后在附上相关分析函数的使用效果。今天就到这,上班了。。。。
给群里的哥们写的sql(row_number、rank、dense_rank)
原文地址:http://blog.csdn.net/yll_358918552/article/details/40185297