【函式】Oracle中聚合函式rank()使用方法
Oracle對於rank和dense_rank已經支援合計功能,不過這次我僅僅使用了其分析功能。具體語法如下:RANK ( ) OVER ( [query_partition_clause] order_by_clause )。
下面給出一些來自網上的示例:
TABLE:S (subject,mark)
數學,80
語文,70
數學,90
數學,60
數學,100
語文,88
語文,65
語文,77
現在我想要的結果是:每門科目的前3名的分數
數學,100
數學,90
數學,80
語文,88
語文,77
語文,70
那麼語句就這麼寫:
select * from (select rank() over(partition by subject order by mark desc) rk,S.* from S) T
where T.rk<=3;
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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26892340/viewspace-722237/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle中聚合函式RANK和dense_rank的使用(轉)Oracle函式
- 有關oracle中聚合函式rank和dense_rank的使用Oracle函式
- Oracle聚合函式/分析函式Oracle函式
- oracle聚合函式rank()的用法和一些體會Oracle函式
- oracle 10g函式大全--聚合函式Oracle 10g函式
- 【Analytic】分析函式之RANK函式函式
- oracle分析函式Rank, Dense_rank, row_numberOracle函式
- RANK函式小結函式
- Oracle分析函式RANK(),ROW_NUMBER(),LAG()等的使用方法(轉)Oracle函式
- Oracle OCP(04):聚合函式Oracle函式
- Oracle 聚合函式詳解Oracle函式
- oracle 自定義聚合函式Oracle函式
- ORACLE 字串聚合函式 strCatOracle字串函式
- 分析函式DENSE_RANK 和 RANK函式
- ORACLE函式介紹第三篇 著名函式之聚合函式Oracle函式
- oracle 分析函式之(rank()/dense_rank()/row_number())Oracle函式
- 【Analytic】分析函式之DENSE_RANK函式函式
- 聚合函式與數字函式函式
- ORACLE函式介紹第四篇 非著名函式之聚合函式Oracle函式
- Spark2 Dataset分析函式--排名函式row_number,rank,dense_rank,percent_rankSpark函式
- Oracle 中分析函式用法之--rank(),dense_rank(),partition,over()Oracle函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- Stream聚合函式函式
- Django:聚合函式Django函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- rank,dense_rank,row_number 分析函式函式
- 分析函式rank() row_number函式
- 原創:oracle聚合函式介紹Oracle函式
- 分析函式中rank(),row_number(),dense_rank()的區別函式
- mongoDB中聚合函式java處理MongoDB函式Java
- spark中的聚合函式總結Spark函式
- Django(18)聚合函式Django函式
- MySQL 聚合函式大全MySql函式
- 【SQL 學習】分析函式之RANK() DENSE_RANK ()SQL函式
- round函式與trunc函式的使用方法函式
- laravel mysql聚合函式使用方法(count,sum,max,min,avg)LaravelMySql函式
- 【函式】ORACLE函式大全函式Oracle
- 探索MySQL高階語句(數學函式、聚合函式、字串函式、日期時間函式)MySql函式字串