具有重复电子邮件ID的不同行的计数

问题描述:

如何获得SQL中具有重复电子邮件ID的不同行的计数?具有重复电子邮件ID的不同行的计数

ID NAME EMAIL 
1 John [email protected] 
2 Sam [email protected] 
4 Bob [email protected] 
5 Tom [email protected] 
6 Rob [email protected] 
7 Tic [email protected] 
8 Dad [email protected] 

查询应返回2. 为[email protected][email protected]是重复

SELECT 
COUNT(*) 
FROM Users 
GROUP BY EMail 
HAVING (COUNT(EMAIL) > 1)  

该查询返回一些奇怪的结果。 感谢

+0

'SELECT COUNT(EMail)'? – pascal 2010-07-21 16:16:42

计数行:

select sum(cnt) 
from (select count(*) as cnt 
    from Users 
    group by email 
    having count(*) > 1) T 

计数的电子邮件:

select count(*) 
from (select count(*) as cnt 
    from Users 
    group by email 
    having count(*) > 1) T 

两者兼而有之:

select count(*) as COUNT_EMAIL sum(cnt) as COUNT_ROWS 
from (select count(*) as cnt 
    from Users 
    group by email 
    having count(*) > 1) T 

以上应SQL Server和Oracle上工作。

+0

+1:我错过了总和要求 – 2010-07-21 16:19:42