繁体   English   中英

将几乎相同的行合并为1

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM