日期:2014-05-16 浏览次数:20515 次
1.排名函数:
RANK and DENSE_RANK Functions
语法如下:
RANK ( ) OVER ( [query_partition_clause] order_by_clause )
DENSE_RANK ( ) OVER ( [query_partition_clause]order_by_clause )
在排名函数中order by是不可选字段,表示你要按什么进行排名,partition是可选字段,如果没有partition则表示对全部数据进行排名,如果有partition则表示在分区内进行排序。
我们先来看一个例子:
SQL> SELECT EMPNO,
2 DEPTNO,
3 SUM(SAL) SAL,
4 RANK() OVER(ORDER BY SUM(SAL) DESC)RANK_DESC,
5 RANK() OVER(ORDER BY SUM(SAL))RANK_ASC,
6 DENSE_RANK() OVER(ORDER BY SUM(SAL)DESC) DENSE
7 FROM EMP
8 GROUP BY DEPTNO, EMPNO;
EMPNO DEPTNO SAL RANK_DESC RANK_ASC DENSE
---------- ---------- ---------- ---------- --------------------
7900 30 950 14 1 12
7876 20 1100 13 2 11
7521 30 1250 11