如何在SQL中保留数据的同时进行重复数据删除

问题描述 投票:0回答:1

我有一个要删除重复数据集的数据集,而又不会丢失外键。

这里结构:

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

如何合并这些记录?

谢谢

sql google-bigquery
1个回答
0
投票

您似乎想要聚合:

select PK1, PK2, max(FK1) as fk1, max(FK2) as fk2,
       Data1, Data2, Data3
from t
group by PK1, PK2, Data1, Data2, Data3;
© www.soinside.com 2019 - 2024. All rights reserved.