我有一个要删除重复数据集的数据集,而又不会丢失外键。
这里结构:
PK1 UUID
PK2 BIGINT
FK1 BIGINT
FK2 BIGINT
DATA1 STRING
DATA2 INTEGER
...
so forth.
PK是组合的PK。两个FK来自两个单独的其他表。该表中有重复的行。如果PK1和PK2是重复的,则数据字段重复。 FK是我的问题。
数据看起来像这样:
PK1 PK2 FK1 FK2 Data1 Data2 Data3
1 1 1 null a b c
1 1 null 2 a b c
1 2 5 null d e f
1 2 null 7 d e f
我需要的是:
PK1 PK2 FK1 FK2 Data1 Data2 Data3
1 1 1 2 a b c
1 2 5 7 d e f
如何合并这些记录?
谢谢
您似乎想要聚合:
select PK1, PK2, max(FK1) as fk1, max(FK2) as fk2,
Data1, Data2, Data3
from t
group by PK1, PK2, Data1, Data2, Data3;