分析函式中rank(),row_number(),dense_rank()的區別
/*rank(),row_number(),dense_rank()的區別*/
rank() 結果中會有重複序列,並且會出現跳號
select ename,sal,rank()over(order by sal) from emp
ENAME SAL RANK()OVER(ORDERBYSAL)
---------- ---------- ----------------------
SCOTT 3000 12
FORD 3000 12
KING 5000 14
dense_rank 結果中會出現重複序列 但不會出現跳號現象
select ename,sal,dense_rank()over(order by sal) from scott.emp;
ENAME SAL DENSE_RANK()OVER(ORDERBYSAL)
---------- ---------- ----------------------------
SCOTT 3000 11
FORD 3000 11
KING 5000 12
row_number()結果不會有重複序列,重複值隨機排列,不會出現跳號
select ename,sal,row_number()over(order by sal) from scott.emp;
ENAME SAL ROW_NUMBER()OVER(ORDERBYSAL)
---------- ---------- ----------------------------
SCOTT 3000 12
FORD 3000 13
KING 5000 14
rank() 結果中會有重複序列,並且會出現跳號
select ename,sal,rank()over(order by sal) from emp
ENAME SAL RANK()OVER(ORDERBYSAL)
---------- ---------- ----------------------
SCOTT 3000 12
FORD 3000 12
KING 5000 14
dense_rank 結果中會出現重複序列 但不會出現跳號現象
select ename,sal,dense_rank()over(order by sal) from scott.emp;
ENAME SAL DENSE_RANK()OVER(ORDERBYSAL)
---------- ---------- ----------------------------
SCOTT 3000 11
FORD 3000 11
KING 5000 12
row_number()結果不會有重複序列,重複值隨機排列,不會出現跳號
select ename,sal,row_number()over(order by sal) from scott.emp;
ENAME SAL ROW_NUMBER()OVER(ORDERBYSAL)
---------- ---------- ----------------------------
SCOTT 3000 12
FORD 3000 13
KING 5000 14
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28719055/viewspace-1800172/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Hive中row_number()、dense_rank()、rank()的區別Hive
- Hive ROW_NUMBER,RANK(),DENSE_RANK()Hive
- Oracle vs PostgreSQL Develop(14) - 分析函式KEEP DENSE_RANKOracleSQLdev函式
- mysql自動排序函式dense_rank() over()、rank() over()、row_num() over()用法和區別MySql排序函式
- 7.78 DENSE_RANK
- SQL Server中row_number函式的常見用法SQLServer函式
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- Python中函式和方法的區別Python函式
- MySQL中的ROW_NUMBER視窗函式簡單瞭解下MySql函式
- strcpy函式和memcpy函式的區別函式memcpy
- 【SQL】Lag/Rank/Over視窗函式揭秘,資料分析之旅SQL函式
- MySQL自定義變數實現row_number分析函式的天坑MySql變數函式
- python中的str和repr函式的區別Python函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- # 普通函式和箭頭函式的區別函式
- 淺談Numpy中的shape、reshape函式的區別函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- [20180917]關於分析函式的range與rows的區別.txt函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- fill函式與memset函式的區別(c++)函式C++
- JavaScript函式宣告和函式表示式區別JavaScript函式
- 箭頭函式與普通函式區別函式
- 簡述箭頭函式和普通函式的區別函式
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 箭頭函式和普通函式的10個區別函式
- faker 類 randomElement () 方法和 array_random () 函式區別分析。random函式
- Day 59/100 箭頭函式和普通函式的區別函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- 函式宣告與函式表示式有什麼區別?函式
- JavaScript方法和函式區別JavaScript函式
- QObject Event( )customEvent( ) 函式區別Object函式
- window.onload()函式和jQuery中的document.ready()區別函式jQuery
- 深入理解箭頭函式和傳統函式的區別函式
- 例項物件和函式物件的區別物件函式
- python函式與方法的區別總結Python函式
- setTimeout中的this指向問題和箭頭函式結合的區別函式
- Linux中select()函式分析Linux函式