情况如下。在将文件与自身匹配以进行重复数据删除之后,我们将留下以下成对的匹配记录:
Key1 - Key2
Key1 - Key3
Key2 - Key1
Key2 - Key3
Key3 - Key1
Key3 - Key2
我想以某种方式为此添加一个唯一的群集密钥,以便我们在相同的密钥下留下所有这些记录。所以在这种情况下,我们将有一个单独的密钥,将Key1,Key2和Key 3标识为同一个。
欢迎任何帮助。
谢谢,
多鲁
答案 0 :(得分:0)
您似乎拥有彼此完全相同的完整密钥列表。假设您有一张包含这两个键的表。以下查询返回任何给定键的最小键值:
select key1,
(case when key1 < min(key2) over (partition by key1) then key1
else min(key2) over (partition by key1)
end) as newkey
from keypairs kp
group by key1;
这为每个键提供了一个查找值。要将它应用于您的表(在SQL Server或DB2中):
select t.*, coalesce(keymap.newkey, t.key) as newkey
from YourTable t left outer join
(select key1,
(case when key1 < min(key2) over (partition by key1) then key1
else min(key2) over (partition by key1)
end) as newkey
from keypairs kp
group by key1
) keymap
on t.key = keymap.key1;
更新查询类似。