Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SSIS 2012:如何按键计数?_Ssis - Fatal编程技术网

SSIS 2012:如何按键计数?

SSIS 2012:如何按键计数?,ssis,Ssis,我有一个重复键值的数据集。在下面的示例中,每次不同的组(保留列)发生状态更改时,订单号都会重复 有很多关于如何删除重复项的例子,但我实际上想数一数。我想看到的是: Order # | Hold | Count ---------------------------- 123456 | H2 | 1 123456 | H1 | 2 564653 | H1 | 1 保留没有时间值,日期可以是相同的日期。计数的顺序并不重要,因此对

我有一个重复键值的数据集。在下面的示例中,每次不同的组(保留列)发生状态更改时,订单号都会重复

有很多关于如何删除重复项的例子,但我实际上想数一数。我想看到的是:

Order #   |   Hold  | Count
----------------------------
123456    |    H2   |   1
123456    |    H1   |   2
564653    |    H1   |   1
保留没有时间值,日期可以是相同的日期。计数的顺序并不重要,因此对于123456,H1可能有1,H2可能有2。也许计数不是正确的术语

我如何在SSIS 2012中实现这一点

使用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
仅供参考。。 如果您要订购,请将“按暂挂说明订购”更改为“按暂挂ASC订购”

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