【发布时间】:2015-01-21 13:06:49
【问题描述】:
问题看起来很简单,但我无法理解它, 这是用于 sql server 的
what I have in a table : What I need as a output .
cksum id cksum id
-2162514679 204 -2162514679 204 1
-2162514679 207 -2162514679 207 1
-2162514679 215 -2162514679 215 1
-2162514679 218 -2162514679 218 1
-2162514679 221 -2162514679 221 1
-2160286363 257 -2160286363 257 2
-2160286363 260 -2160286363 260 2
-2160286363 332 -2160286363 332 2
-2162514679 335 -2162514679 335 3
-2162514679 338 -2162514679 338 3
-2126731931 348 -2126731931 348 4
-2126731931 387 -2126731931 387 4
该表按 id 排序,我需要一个 id 列之后的排名,但它对 cksum 进行分组,请注意 cksum 可以返回到以前的值,但由于 ID 仍然具有它的排名(这是这种情况值 2162514679,它在开始时出现 5 次,在下面出现第二次,它们构成两个不同的等级)。我已经用了几个小时了,这似乎真的很愚蠢,就像使用带有分区的 row_number 或使用 CTE 但不......找不到这样做的逻辑......任何人都有回答?
【问题讨论】:
-
您使用的是哪个 Sql server 版本?
-
我使用的是 SQL SERVER 2008 R2
标签: sql sql-server group-by rank partition