Oracle 彙總函式 次序函數 rank dense_rank

來源:互聯網
上載者:User
資料庫中經常會有會某列進行排名,分組排名,求名次的需求,以前用的比較笨的方法 先order by 某列,然後用rownum
今天學到兩個函數可以實現這樣的功能 rank,dense_rank
具體文法如下:RANK ( ) OVER ( [query_partition_clause] order_by_clause )。 

dense_rank與rank()用法相當,但是有一個區別:dence_rank在處理相同的等級時,等級的數值不會跳過。rank則跳過。

例如:表

    A B C
a          liu          wang
a          jin          shu
a          cai          kai
b          yang      du
b          lin          ying
b          yao        cai
b          yang      99

例如:當rank時為:

select m.a,m.b,m.c,rank() over(partition by a order by b) liu from test3 m

A          B             C          LIU
a          cai          kai          1
a          jin           shu        2
a          liu           wang     3
b          lin           ying        1
b          yang      du           2
b          yang      99           2
b          yao        cai           4

而如果用dense_rank時為:
select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m

A          B             C          LIU
a          cai          kai          1
a          jin           shu        2
a          liu           wang     3
b          lin           ying        1
b          yang      du           2
b          yang      99           2
b          yao        cai           3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.