[英]Combining almost identical rows into 1
我有一个棘手的问题,我不介意提供一些帮助,我在这里和其他地方使用的查询已经取得了一些进展,但是现在正变得很困难。
我有一个邮件列表,其中包含许多重复项,我试图将这些重复项合并为一个有意义的行,以获取此类数据。
Title Forename Surname Address1 Postcode Phone Age Income Ownership Gas
Mrs D Andrews 122 Somewhere BH10 123456 66-70 Homeowner
Ms Diane Andrews 122 Somewhere BH10 123456 £25-40 EDF
并沿着
Title Forename Surname Address1 Postcode Phone Age Income Ownership Gas
Mrs Diane Andrews 122 Somewhere BH10 123456 66-70 £25-40 Homeowner EDF
我有超过1.27亿条记录,大多数重复以类似的方式进行记录,但是没有明确的逻辑,就像我添加标识字段时所证明的那样。 我还有90多个专栏要考虑,所以这有点工作! 数据没有明确的模式,所以我认为我可能有一个很大的案例陈述要尝试。
使用以下代码,我可以仅返回全名,但使用数据模式,这是一个不错的开始-尝试比较各行中的字段如下。
SELECT c1.*
FROM
Mailing c1
JOIN
Mailingc2 ON c1.Telephone1 = c2.Telephone1 AND c1.surname = c2.surname
WHERE
len(c1.Forename) > len(c2.Forename)
AND c2.over_18 <> ''
AND c1.Telephone1 = '123456'
有没有人对我的进步有任何指示? 我愿意讨论和提出想法...
如果标记无处不在,我会提前使用SQL 2005和歉意!
干杯,
乔恩
假设所有姓氏和电话号码相同的人(所有人都有电话吗?)是同一个人吗?
INSERT INTO newtable <fieldnames>
SELECT lastname,phone,max(field3),max(field4)....
FROM oldtable
GROUP BY lastname,phone
但这会使约翰·史密斯和杰克·史密斯一起生活在一起成为一个人。
也许您应该考虑将其外包给某个地方的数据输入血汗工厂,然后再对数据进行预处理。 :-)
和/或准备采取错误的捆绑方法。
也许添加诸如“为了提高绿色足迹,我们将您地址上的x个列表合并在一起。如果您希望单独发送邮件,请与我们联系”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.