-1

情况如下。在将文件与其自身匹配以进行重复数据删除后,我们将得到以下匹配记录对:

键 1 - 键 2键 1
-
键 3 键 2 -键 1 键 2 -
键 3键 3
-键 1 键 3
- 键 2

我想以某种方式为此添加一个唯一的集群键,这样我们就可以在同一个键下保留所有这些记录。因此,在这种情况下,我们将有一个单独的密钥,将 Key1、Key2 和 Key 3 标识为相同的一个。

欢迎任何帮助。

谢谢,

多鲁

4

1 回答 1

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;

更新查询将是类似的。

于 2013-09-19T11:14:40.023 回答