SQL 特殊查詢例項 分組、編號、排序、行號
在資料庫查詢操作的時候,經常會遇到一些特殊的資料提取,比如按某些條件分組後,在組內排序附加租序號等等。
不多說直接上SQL:
表 TableName{A,B,C,D}
TableName
A B C D
a 1 a1 b1
b 1 a2 b1
c 2 a1 b2
a 2 a2 b1
b 1 a1 b1
------------------------------------------------------------------------------------------------------------------------------------------
DB2:
--分組查詢,組內排序新增序號
SELECTrank() over(partition BY t.A,t.B ORDER BY t.Cdesc ) son , t.* FROM TableName t ;
結果:
son A B C D
1 a 1 a1 b1
2 a 2 a2 b1
1 b 1 a2 b1
2 b 1 a1 b1
1 c 2 a1 b2
--為查詢結果新增序號,行號。
SELECT rownumber() over (ORDER BY t.A) son ,t.* FROM TableName t ;
結果:
son A B C D
1 a 1 a1 b1
2 a 2 a2 b1
3 b 1 a1 b1
4 b 1 a2 b1
5 c 2 a1 b2
--