这是我的问题:
我有以下数据,我正在寻找去重复和一般清理,字段是:
- 唯一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_。