【发布时间】:2020-08-07 02:59:47
【问题描述】:
我有一个奇怪的要求。 我必须在我的数据库中找到重复的联系人记录(应该很简单),我的问题是我必须通过名字、姓氏和任何相互匹配的电子邮件字段进行匹配。
Exemple:
FirstName | LastName | Email | WorkEmail | AnotherEmail
John Smith jh@jh.com test@test.com yougettheIdea.com
John Smith test@test.com
John Smith imAdifferent.jh.com
我需要在此示例中确定,第 1 行和第 2 行中的 John Smith 是重复记录,但第 3 行不是。 基本上,我需要查询与 FirstName 匹配的 FirstName、与 LastName 匹配的 LastName,以及与任何字段匹配的任何电子邮件字段...... 这甚至可能吗?
我得到这个是为了匹配名字和姓氏,但电子邮件对我来说太多了:
SELECT * FROM
(SELECT "FirstName","LastName","Email",","WorkEmail","AnotherEmail", count(*)
OVER
(PARTITION BY
"FirstName",
"LastName"
) AS count
FROM Contact) tableWithCount
WHERE tableWithCount.count > 1 ORDER BY count DESC;
【问题讨论】:
标签: postgresql