我的数据只在一列中有一些重复记录。我希望在通过脚本组件运行数据后过滤它们以获取所有重复值并将增量数字附加到它们以使它们是唯一的。
是否可以使用聚合组件?
例如,我的数据可能如下所示:
Column1和2用作我的主要键,因此我需要Column2使用它的值更加独特。 将数字附加到重复项后,它看起来像这样(注意' C'没有数字):
答案 0 :(得分:3)
select tt.*, tt.col2 + '.' + rn
from ( select t.*
, row_number() over (partition by col2 order by ?) as rn
, count(*) over (partition by col2) as cnt
) tt
我注意到C没有号码。我会把这个练习留给你。提示使用cnt。
DECLARE @a TABLE (col2 varchar(20));
INSERT INTO @a VALUES ('a'), ('a') , ('a'), ('b'), ('c'), ('c');
select aa.*, aa.col2 + '.' + cast(rn as varchar)
from ( select a.*
, row_number() over (partition by col2 order by col2) as rn
, count(*) over (partition by col2) as cnt
from @a a
) aa
where aa.cnt > 1
order by aa.col2;
update aa
set aa.col2 = aa.col2 + '.' + cast(rn as varchar)
from ( select a.*
, row_number() over (partition by col2 order by col2) as rn
, count(*) over (partition by col2) as cnt
from @a a
) aa
where aa.cnt > 1;
select * from @a a
order by a.col2;