使用row_number()分頁函式取代group by
使用row_number()分頁函式取代group by。例如:
語句1:
select col1,col2 from t where col1 in (select col1 from t group by col1 having count(*) <=2 ) order
by order col2;
語句1可以用下面的語句取代:
語句2:
select col1,col2 from (select *,row_number() over(partition by col1 order by col2) as p_group from
t) where p_group<=2 ;
ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)
表示根據COL1分組,在分組內部根據 COL2排序。而這個值就表示每組內部排序後的順序編號(組內連續的唯一的
)。
RANK() OVER (PARTITION BY COL1 ORDER BY COL2)
類似,不過RANK 排序的時候跟派名次一樣,可以並列2個第一名之後 是第3名。
dense_rank() OVER (PARTITION BY COL1 ORDER BY COL2)
類似。是連續排序,有兩個第二名時仍然跟著第三名。
dept sal emp row_number rank dense_rank
---- ------- ----- ---------- ----- ----------
10 5000.00 7839 1 1 1
10 2450.00 7782 2 2 2
10 1300.00 7934 3 3 3
20 3000.00 7788 1 1 1
20 3000.00 7902 2 1 1
20 2975.00 7566 3 3 2
20 1100.00 7876 4 4 3
20 800.00 7369 5 5 4
30 2850.00 7698 1 1 1
30 1600.00 7499 2 2 2
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10867315/viewspace-194842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分析函式row_number()使用一例函式
- row_number() over函式函式
- 分頁函式 (轉)函式
- 【Analytic】分析函式之ROW_NUMBER函式函式
- group by分組函式之rollup與cube用法函式
- 分析函式rank() row_number函式
- MySQL - 分組連線欄位函式GROUP_CONCAT的使用MySql函式
- SqlServer 分頁 ROW_NUMBER() OVER(Order by * DESC ) AS RowNumberSQLServer
- 聚合函式及分組與過濾(GROUP BY … HAVING)函式
- ROW_NUMBER() OVER() 分析函式的用法函式
- ROW_NUMBER() OVER函式的基本用法函式
- 分析函式學習3 ROW_NUMBER函式
- sql優化用group by 函式代替分析函式SQL優化函式
- 分析函式rank,dense_rank,row_number使用和區別 .函式
- SQL Server的分頁優化及Row_Number()分頁存在的問題SQLServer優化
- 視窗函式 row_number 去重複函式
- rank,dense_rank,row_number 分析函式函式
- PHPCMS V9 分頁函式解析PHP函式
- Oracle分析函式RANK(),ROW_NUMBER(),LAG()等的使用方法(轉)Oracle函式
- 關於在oracle 的group by中使用自定義函式Oracle函式
- oracle分析函式Rank, Dense_rank, row_numberOracle函式
- oracle下資料的排序分組row_number() over()--分析函式,可用於去重Oracle排序函式
- Sql Server 2005 row_number()分頁效能測試SQLServer
- SQL函式Group_concat用法SQL函式
- MYSQL的GROUP_CONCAT函式MySql函式
- SQL Server中row_number函式的常見用法SQLServer函式
- Oracle 中的 ROW_NUMBER() OVER() 分析函式的用法Oracle函式
- 分析函式——排序排列(rank、dense_rank、row_number)函式排序
- oracle 分析函式之(rank()/dense_rank()/row_number())Oracle函式
- 帝國cms怎樣修改列表分頁函式函式
- Clickhouse新增bitmap分頁函式(水了個PR)函式
- 拋棄以往分頁方式,改用ROW_NUMBER()加BETWEEN方式的分頁儲存過程,特此分享儲存過程
- SQL SERVER 排序函式ROW_NUMBER、RANK、DENSE_RANK、NTILESQLServer排序函式
- mysql函式之——GROUP_CONCAT(轉)MySql函式
- Spark2 Dataset分析函式--排名函式row_number,rank,dense_rank,percent_rankSpark函式
- mysql count函式與分頁功能極限優化MySql函式優化
- 二分查詢函式的使用函式
- 【Analytic】使用分析函式ROW_NUMBER輔助完成外來鍵的索引批量建立函式索引