我遇到了一个问题,我试图在某些数据上运行,我想开始的地方是描述数据。
好的,我有一个电子邮件地址列表,每个电子邮件地址都有一个唯一的ID和一个帐户ID
同样在我的表格中,我有一个自动递增的固定号码,这样我就可以定位重复的电子邮件地址
我需要做的就是这样。
Insert into duplicates
(EMAIL,ACCOUNTID,ID)
SELECT Email,AccountID,ID
FROM EmailAddresses
Group by Email,AccountID
Having Count(email)>1
Order by AccountID, Email
所以基本上我想选择所有重复的电子邮件地址并将它们(以及它们的相关字段)插入到按帐户ID分解的新表中,这样我就可以对它进行更多的查询。
我一直在与这个问题进行太长时间的争斗,并且可以使用一种全新的视角。
提前干杯
答案 0 :(得分:1)
SELECT *
FROM EmailAddresses e1 INNER JOIN
(SELECT Email, AccountId
FROM EmailAddresses
GROUP BY Email, AccountID
HAVING Count(Id)>1) Dups
ON Dups.Email = e1.Email AND Dups.AccountId = e1.AccountId
答案 1 :(得分:1)
SELECT Email, AccountID, ID INTO duplicates
FROM EmailAddresses E
WHERE (SELECT COUNT(*) FROM EmailAddresses E1 WHERE E1.Email = E.Email) > 1
GROUP BY Email, AccountID, ID;
答案 2 :(得分:1)
确保重复表中的ID字段不是标识字段,并删除order by子句。
Insert into duplicates
(EMAIL,ACCOUNTID,ID)
SELECT Email,AccountID, MIN(ID)
FROM EmailAddresses
Group by Email,AccountID
Having Count(email)>1
如果您想要所有重复记录,请使用queen3建议的选择