SQL 特殊查询实例 分组、编号、排序、行号(咋个办呢 zgbn)
在数据库查询操作的时候,经常会遇到一些特殊的数据提取,比如按某些条件分组后,在组内排序附加租序号等等。
不多说直接上SQL:
表 TableName{A,B,C,D}
| 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 |
--DB2
--为查询结果添加序号,行号。
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 |

本文介绍了如何使用SQL进行特殊数据提取,包括按条件分组后在组内排序并添加序号的方法。通过具体实例展示了使用`rank()`和`rownumber()`函数的应用。
2500

被折叠的 条评论
为什么被折叠?



