如何创建一个重复的序列字段,并且仅对唯一的行是唯一的?

时间:2014-07-05 17:57:11

标签: sql sql-server tsql etl data-warehouse

我正在从多个数据库中提取数据,并希望跟踪重复记录而不会清除它们。我的解决方案是创建一个新的序列字段,其中行通过具有相同的序列号来标记为重复。请记住,并非所有列都必须等同于被视为重复。

我该怎么做?我的目标是让所有重复记录的表格保持不变,最后是另一个表格,我只能通过合并具有相同序列ID的记录来获得唯一记录。

1 个答案:

答案 0 :(得分:0)

试试这个:

select t.*, Sequence_ID=DENSE_RANK() over (
                order by <fields_you_want_to_test_for_uniqueness>
            )
from <your_table> t

请注意,DENSE_RANK()为&#34; tie&#34;提供相同的值,但也为您提供连续的数字(例如1,2,3,3,4),而RANK()为您提供相同的值&#34; tie&#34;的值,但随后会跳过数字(例如1,2,3,3,5)。选择适合您需求的任何一种。