rank() 與dense_rank()分析
1.rank()分析函式
語法:
RANK() OVER([PARTITION BY expr1[,expr2,..,exprn]] ORDER BY expr1[,expr2,..,exprn])
功能: 先將記錄按PARTITION分組,組內再以ORDER BY排序,算出當前記錄在組內所處的級別(名次). PRATITION條件省略時,表明不分組,或將全錄記錄作為一組
例子: 有表如下:
SQL> select * from test; NAME SUBJECT SCORE 已選擇9行。 |
執行語句如下:
SQL> break on name skip 1; NAME SUBJECT SCORE SCORE_RANK bb english 96 1 cc art 78 1 已選擇9行。 |
SQL> select * from (select name ,subject,score ,rank() over ( partition by subject order by score desc) score_rank from test) where score_rank<=3; NAME SUBJECT SCORE SCORE_RANK aa chinese 90 1 bb english 96 1 已選擇9行。 |
2.dense_rank函式
DENSE_RANK分析函式
語法:DENSE_RANK() OVER([PARTITION BY expr1[,expr2,..,exprn]] ORDER BY expr1[,expr2,..,exprn])
已建立 1 行。 SQL> insert into test values('dd','art',78); 已建立 1 行。 SQL> insert into test values('dd','english',96); 已建立 1 行。 SQL> select * from (select name ,subject,score,dense_rank() over ( partition by subject order by score desc) score_rank from test) where score_rank<=3;
已選擇9行。 |
SQL> select * from (select name ,subject,score ,dense_rank() over ( partition by name order by score desc) score_rank from test) where score_rank<=3; NAME SUBJECT SCORE SCORE_RANK 已選擇12行。 |
SQL> select * from (select name ,subject,score,rank() over ( partition by name order by score desc) NAME SUBJECT SCORE SCORE_RANK 已選擇12行。 SQL> select * from (select name ,subject,score,rank() over ( partition by subject order by score desc) score_rank from test) where score_rank<=3; NAME SUBJECT SCORE SCORE_RANK 已選擇9行。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21340813/viewspace-615427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分析函式DENSE_RANK 和 RANK函式
- rank,dense_rank,row_number 分析函式函式
- 【SQL 學習】分析函式之RANK() DENSE_RANK ()SQL函式
- oracle分析函式Rank, Dense_rank, row_numberOracle函式
- 分析函式——排序排列(rank、dense_rank、row_number)函式排序
- oracle 分析函式之(rank()/dense_rank()/row_number())Oracle函式
- Oracle 中分析函式用法之--rank(),dense_rank(),partition,over()Oracle函式
- 分析函式——keep(dense_rank first/last)函式AST
- 分析函式rank,dense_rank,row_number使用和區別 .函式
- 分析函式中rank(),row_number(),dense_rank()的區別函式
- Oracle:Rank,Dense_Rank,Row_Number比較Oracle
- [原創] 小議rank(),dense_rank(),row_number()使用與區別
- 【Analytic】分析函式之DENSE_RANK函式函式
- Spark2 Dataset分析函式--排名函式row_number,rank,dense_rank,percent_rankSpark函式
- Oracle vs PostgreSQL Develop(14) - 分析函式KEEP DENSE_RANKOracleSQLdev函式
- Hive中row_number()、dense_rank()、rank()的區別Hive
- lead lag rank()over()dense_rank()row_number()over()rollupcube幾大分析函式函式
- row_number() over,rank() over,dense_rank() over的區別
- SQL SERVER 排序函式ROW_NUMBER、RANK、DENSE_RANK、NTILESQLServer排序函式
- oracle中聚合函式RANK和dense_rank的使用(轉)Oracle函式
- 有關oracle中聚合函式rank和dense_rank的使用Oracle函式
- mysql自動排序函式dense_rank() over()、rank() over()、row_num() over()用法和區別MySql排序函式
- 分析函式rank() row_number函式
- 【Analytic】分析函式之RANK函式函式
- PaddleSeg2.8訓練驗證時報錯[Hint: Expected axis >= -rank && axis < rank == true, but received axis >= -rank && axis < rank:0 != true:1.]
- SQL語句中的rank () over , row_number() over ,rank_dense ()SQL
- 7.21 APPROX_RANKAPP
- RANK函式小結函式
- Oracle分析函式RANK(),ROW_NUMBER(),LAG()等的使用方法(轉)Oracle函式
- R排序sort、order、rank、arrange排序
- Learning to rank基本演算法小結演算法
- CUME-DIST()和PERCENT-RANK()函式函式
- HDU 5131 Song Jiang's rank list(排序)排序
- RANK函式基於條件的查詢函式
- 並查集系列之「基於rank的優化」並查集優化
- 【函式】Oracle中聚合函式rank()使用方法函式Oracle
- excel利用rank排名次公式 excel利用公式計算排名Excel公式
- 並查集系列之「基於rank的最佳化」並查集