我有一个表,我需要查询以生成这样的结果集:
ColA ColB ColC ==== ==== ==== AA BC 1 AA BD 2 BB DD 1 BB EE 2 BB FF 3 CC AA 1
(这个'虚构'样本的行数多于
)表中只存在ColA + ColB,ColC需要由查询生成,每个不同的'ColA'需要在ColC中将计数重置为1,然后向上计数直到ColA中的下一个值。
我正在使用MS / SQL2008。
谢谢 - 我试图搜索其他人是否提出过类似的问题,并且看过哪些问题可以使用:
row_number() over (order by ColA, ColB)
但据我所知,根据这个例子,这只会给我一个1 ... 6的序列表?
答案 0 :(得分:0)
您需要对行编号进行分区 - 每个分区都有自己的1,2,3,......行编号。
row_number() over (partition by ColA order by ColB)
答案 1 :(得分:0)
SELECT
ColA,
ColB,
row_number() over (partition by ColA order by ColB) as ColC
FROM
Test
您可以添加ORDER BY ColA
,以强制执行您想要的订单(但演示显示没有必要)。