SQL分组依据但记录关系



这是我的问题:

我有以下数据,我正在寻找去重复和一般清理,字段是:

  • 唯一ID
  • 名称
  • 电话号码
  • 电子邮件

RDBMS是Azure SQL

我想做的是根据姓名、电话号码和电子邮件进行分组,然后将UniqueID记录在单独的列中,例如:

NewUniqueID Name PhoneNumber Email OldIDs
1 Sam Smith 091234567 sam.smith@test.com 12,54,65,70

然而,我不确定创建OldID字段的正确术语是什么,所以我一直无法找到如何做到这一点

您似乎想要字符串聚合:

select 
row_number() over(order by (select null)) newUniqueID,
name,
phoneNumber,
email,
string_agg(uniqueID, ',') oldIDs
from mytable
group by name, phoneNumber, email

这为每个(name, phoneNumber, email)元组生成一行,并连接列oldIDs中的所有uniqueID。CCD_ 4为结果集中的每一行分配一个新的CCD_。

最新更新