我有一个重复键值的数据集。在下面的示例中,每次由不同的组(保留列)更改状态时,订单号都会重复。
Order # | Hold
-----------------------
123456 | H1
123456 | H2
564653 | H1
有很多关于如何删除重复的例子,但我实际上想要计算它们。我想看到的是:
Order # | Hold | Count
----------------------------
123456 | H2 | 1
123456 | H1 | 2
564653 | H1 | 1
保留没有时间价值,日期可以是相同的日期。对于123456,计数的顺序并不重要,H1可能有1,而H2可能有2.也许计数不是正确的术语。
我如何在SSIS 2012中实现这一目标?
答案 0 :(得分:1)
使用ROW_NUMBER()函数..
declare @tablename table (OrderNum varchar(10), Hold varchar(3))
insert into @tablename (OrderNum, Hold)
select '123456', 'H1'
union all
select '123456', 'H2'
union all
select '564653', 'H1'
select
OrderNum, Hold,
ROW_NUMBER() over (partition by OrderNum order by Hold DESC) as [Count]
from @tablename
仅供参考..
如果您想订购,请将order by Hold DESC
更改为order by Hold ASC