Oracle rank和dense_rank次序函數__C語言

來源:互聯網
上載者:User
1.rank函數

rank計算一組值的排名,返回數字類型。排名可能是不連續。如果有5人,其中有2個人排名第一,則rank返回的排名結果為:1 1 3 4 5。 作為一個彙總函式,返回虛設項目列在樣表中的排名。 作為一個解析函數,返回每一個的排名。 1.1彙總函式文法

  1.2解析函數文法

  1.3彙總函式的例子

計算假定薪水為2000的員工在樣表中的排名。

SQL> select rank(2000) within group(order by e.sal desc) "Rank"
  2    from emp e;
 
      Rank
----------
         7

假定薪水為2000的員工,按照薪水從高到低在樣表中排第7名。

  1.4解析函數的例子

按照薪水從高到低進行排名:

SQL> select e.ename, e.sal, rank() over(order by e.sal desc) "Rank" from emp e;
 
ENAME            SAL       Rank
---------- --------- ----------
KING         5000.00          1
FORD         3000.00          2
SCOTT        3000.00          2
JONES        2975.00          4
BLAKE        2850.00          5
CLARK        2450.00          6
ALLEN        1600.00          7
TURNER       1500.00          8
MILLER       1300.00          9
WARD         1250.00         10
MARTIN       1250.00         10
ADAMS        1100.00         12
JAMES         950.00         13
SMITH         800.00         14

 

薪水為3000重複,並列排名第2,跳過第3.

 

在部內進行薪水從高到低的排名:

SQL> select e.ename,
  2         e.sal,
  3         e.deptno,
  4         rank() over(partition by e.deptno order by e.sal desc) "Rank"
  5    from emp e;
 
ENAME            SAL DEPTNO       Rank
---------- --------- ------ ----------
KING         5000.00     10          1
CLARK        2450.00     10          2
MILLER       1300.00     10          3
SCOTT        3000.00     20          1
FORD         3000.00     20          1
JONES        2975.00     20          3
ADAMS        1100.00     20          4
SMITH         800.00     20          5
BLAKE        2850.00     30          1
ALLEN        1600.00     30          2
TURNER       1500.00     30          3
MARTIN       1250.00     30          4
WARD         1250.00     30          4
JAMES         950.00     30          6

  2.dense_rank函數

dense_rank計算一組值的排名,該排名是連續整數從1開始。如果有5人,其中有2個人排名第一,則rank返回的排名結果為:1 1 2 3 4。 作為一個彙總函式,返回虛設項目列在樣表中的排名。 作為一個解析函數,返回每一個的排名。 2.1彙總函式文法

  2.2解析函數文法

  2.3彙總函式的例子

計算假定薪水為2000的員工在樣表中的排名。

SQL> select dense_rank(2000) within group(order by e.sal desc) "Rank"
  2    from emp e;
 
      Rank
----------
         6

假定薪水為2000的員工,按照薪水從高到低在樣表中排第7名。

  2.4解析函數的例子

按照薪水從高到低進行排名:

SQL> select e.ename,
  2         e.sal,
  3         dense_rank() over(order by e.sal desc) "Rank"
  4    from emp e;
 
ENAME            SAL       Rank
---------- --------- ----------
KING         5000.00          1
FORD         3000.00          2
SCOTT        3000.00          2
JONES        2975.00          3
BLAKE        2850.00          4
CLARK        2450.00          5
ALLEN        1600.00          6
TURNER       1500.00          7
MILLER       1300.00          8
WARD         1250.00          9
MARTIN       1250.00          9
ADAMS        1100.00         10
JAMES         950.00         11
SMITH         800.00         12

 

有兩個1250並列排名第8,接著1100是第9。排名是連續是連續的。

 

在部內進行薪水從高到低的排名:

SQL> select e.ename,
  2         e.sal,
  3         e.deptno,
  4         dense_rank() over(partition by e.deptno order by e.sal desc) "Rank"
  5    from emp e;
 
ENAME            SAL DEPTNO       Rank
---------- --------- ------ ----------
KING         5000.00     10          1
CLARK        2450.00     10          2
MILLER       1300.00     10          3
SCOTT        3000.00     20          1
FORD         3000.00     20          1
JONES        2975.00     20          2
ADAMS        1100.00     20          3
SMITH         800.00     20          4
BLAKE        2850.00     30          1
ALLEN        1600.00     30          2
TURNER       1500.00     30          3
MARTIN       1250.00     30          4
WARD         1250.00     30          4
JAMES         950.00     30          5

 

20部門有兩個3000並列排名第一,接著2975是第二。排名是連續是連續的。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.