在数据库查询操作的时候,经常会遇到一些特殊的数据提取,比如按某些条件分组后,在组内排序附加租序号等等。
不多说直接上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
--