Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法
中的 ROW_NUMBER() OVER() 分析函式的用法
ROW_NUMBER() OVER(partition by col1 order by col2) 表示根據col1分組,在分組內部根據col2排序,而此函式計算的值就表示每組內部排序後的順序編號(組內是連續且唯一的)。
舉例:
SQL> DESC T1;
Name Null? Type----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(10)
DATE1 DATE
SQL> SELECT * FROM T1;
ID NAME DATE1
---------- ------------------------------ ------------------
101 aaa 09-SEP-13
101 bbb 10-SEP-13
101 ccc 11-SEP-13
102 ddd 08-SEP-13
102 eee 11-SEP-13
SQL> SELECT ID,NAME,DATE1,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM T1;
ID NAME DATE1 RN
---------- ------------------------------ ------------------ ----------
101 ccc 11-SEP-13 1
101 bbb 10-SEP-13 2
101 aaa 09-SEP-13 3
102 eee 11-SEP-13 1
102 ddd 08-SEP-13 2
把上面語句作為一個子表語句,嵌入到另一條語句中:
ID NAME DATE1
---------- ------------------------------ ------------------
101 ccc 11-SEP-13
102 eee 11-SEP-13
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2141419/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server中row_number函式的常見用法SQLServer函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- 【Oracle的NVL函式用法】Oracle函式
- sql中row_number over語句SQL
- mysql自動排序函式dense_rank() over()、rank() over()、row_num() over()用法和區別MySql排序函式
- PHP 手冊中的匿名函式關聯用法分析PHP函式
- Python中的split()函式的用法Python函式
- python中zip()函式的用法Python函式
- Matlab中erf函式的用法Matlab函式
- MySQL中的ROW_NUMBER視窗函式簡單瞭解下MySql函式
- MySQL自定義變數實現row_number分析函式的天坑MySql變數函式
- C++中函式呼叫的用法C++函式
- Oracle中Decode()函式的使用Oracle函式
- Oracle分析函式與視窗函式Oracle函式
- Oracle中rownum和row_number()Oracle
- GetModuleFileName函式的用法函式
- Instr函式的用法函式
- ROW_NUMBER 開窗函式最佳化方案(Oracle && PostgreSQL 效能比對)函式OracleSQL
- 6、Oracle中的分組函式Oracle函式
- Kotlin中的also、let、run、with、apply函式的用法KotlinAPP函式
- C++中push_back()函式的用法C++函式
- python中upper函式的用法是什麼?Python函式
- ES 6 中的箭頭函式及用法函式
- string 函式的基本用法函式
- Python函式用法和底層分析Python函式
- 【SQL】Lag/Rank/Over視窗函式揭秘,資料分析之旅SQL函式
- ORACLE分析函式手冊(轉)Oracle函式
- sys_context函式的用法Context函式
- PostgreSQL>視窗函式的用法SQL函式
- C++ 函式 realloc 的用法C++函式
- Excel函式的初級用法Excel函式
- oracle樹中prior的用法Oracle
- Oracle中的正規表示式(及函式)詳解Oracle函式
- Spark Streaming--開窗函式over()Spark函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- C語言中函式printf()和函式scanf()的用法C語言函式
- row_number() OVER (PARTITION BY COL1 ORDER BY COL2)
- ORACLE分析函式手冊二(轉)Oracle函式