ROW_NUMBER() OVER() 分析函式的用法
Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法
ROW_NUMBER() OVER(partition by col1 order by col2) 表示根據col1分組,在分組內部根據col2排序,而此函式計算的值就表示每組內部排序後的順序編號(組內是連續且唯一的)。
舉例:
SQL> DESC T1;
----------------------------------------- -------- ----------------------------
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
把上面語句作為一個子表語句,嵌入到另一條語句中:
SQL> SELECT ID,NAME,DATE1 FROM (SELECT ID,NAME,DATE1,ROW_NUMBER() OVER(partition by ID order by DATE1 desc) as RN FROM T1)T WHERE T.RN=1;
ID NAME DATE1
---------- ------------------------------ ------------------
101 ccc 11-SEP-13
102 eee 11-SEP-13
轉載自:http://blog.csdn.net/iw1210/article/details/11937085
相關文章
- Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法Oracle函式
- ROW_NUMBER() OVER函式的基本用法函式
- row_number() over函式函式
- OVER(PARTITION BY)函式用法函式
- lead lag rank()over()dense_rank()row_number()over()rollupcube幾大分析函式函式
- 分析函式 over函式
- sum()over()和count()over()分析函式函式
- oracle下資料的排序分組row_number() over()--分析函式,可用於去重Oracle排序函式
- 分析函式rank() row_number函式
- Oracle 中分析函式用法之--rank(),dense_rank(),partition,over()Oracle函式
- oracle的分析函式over 及開窗函式Oracle函式
- 【Analytic】分析函式之ROW_NUMBER函式函式
- SQL Server中row_number函式的常見用法SQLServer函式
- oracle的分析函式over(Partition by...) 及開窗函式Oracle函式
- 巧用row_number() over()函式,選取重複記錄中想要的值函式
- row_number() over,rank() over,dense_rank() over的區別
- 分析函式學習3 ROW_NUMBER函式
- oracle分析函式,keep and over解說Oracle函式
- Oracle分析函式之開窗函式over()詳解Oracle函式
- rank,dense_rank,row_number 分析函式函式
- 分析函式row_number()使用一例函式
- mysql自動排序函式dense_rank() over()、rank() over()、row_num() over()用法和區別MySql排序函式
- oracle分析函式Rank, Dense_rank, row_numberOracle函式
- 【函式】oracle視窗函式over()的理解函式Oracle
- SQL語句中的rank () over , row_number() over ,rank_dense ()SQL
- 【Mysql】Mysql似oracle分析函式sum over的實現MySqlOracle函式
- Oracle over()函式使用Oracle函式
- 分析函式——排序排列(rank、dense_rank、row_number)函式排序
- oracle 分析函式之(rank()/dense_rank()/row_number())Oracle函式
- 分析函式中rank(),row_number(),dense_rank()的區別函式
- oracle的sql查詢分析函式-高階部分-分析函授over()子句OracleSQL函式
- Oracle統計分析函式集,over(partition by..) 的運用Oracle函式
- sql中row_number over語句SQL
- 理解了row_number()over (partition by order by )的方法
- Oracle分析函式RANK(),ROW_NUMBER(),LAG()等的使用方法(轉)Oracle函式
- oracle資料庫常用分析函式與聚合函式的用法Oracle資料庫函式
- 分析函式rank,dense_rank,row_number使用和區別 .函式
- MySQL自定義變數實現row_number分析函式的天坑MySql變數函式