2013-03-05 54 views
1

我需要在我們的數據庫中找到重複的電子郵件地址。我正在一張桌子上尋找這些信息。我有什麼到目前爲止找到重複的電子郵件地址

SELECT name.email, name.ID 

From Name 
Group BY Name.ID, Name.EMAIL 
Having Count(*) > 1 

我知道它錯了,但不知道如何給它適當寫。

回答

6

刪除ID

SELECT name.email 
From Name 
Group BY Name.EMAIL 
Having Count(*) > 1 

,如果你想獲得的電子郵件的數量,

SELECT name.email, COUNT(*) totalEmailCount 
From Name 
Group BY Name.EMAIL 
Having Count(*) > 1 
+1

您還可以添加'選擇Name.Email,COUNT(1)'的選擇部分的查詢找到重複的數量 – Kane 2013-03-05 12:58:46

+0

確保您的整理設置爲忽略大小寫。 – 2013-03-05 13:00:16

+0

@ DanielA.White我認爲默認情況下是'不區分大小寫'。 – 2013-03-05 13:01:14

1

在這裏你去:

SELECT name.email, COUNT(*) 
FROM 
    Name 
GROUP BY 
    Name.email 
HAVING 
    COUNT(*) > 1 
2

查詢將

SELECT name.email, COUNT(*) FROM Name 
GROUP BY Name.email HAVING COUNT(*) > 1 

您需要知道的是,如果您也按ID進行分組,計數將爲1,這就是爲什麼您的查詢不起作用。

如果您需要知道用戶的ID與複製,你可以做到這一點電子郵件:

select Name.ID, Name.Email from Name where Name.Email in (

SELECT name.email FROM Name 
    GROUP BY Name.email HAVING COUNT(*) > 1 
) 
0
select id,email from 
(select id,email,count(email) over (partion by email order by id) cnt from name) where cnt>1 
相關問題