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

Posted

技术标签:

【中文标题】具有重复电子邮件 ID 的不同行数【英文标题】:Count of distinct rows with duplicate email IDs 【发布时间】:2011-03-19 02:29:22 【问题描述】:

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

ID   NAME   EMAIL 
1    John   asd@asd.com 
2    Sam    asd@asd.com 
4    Bob    bob@asd.com 
5    Tom    asd@asd.com 
6    Rob    bob@asd.com
7    Tic    tic@asd.com
8    Dad    dad@asd.com

查询应该返回 2。 asd@asd.com 和 bob@asd.com 是重复的

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

这个查询返回了一些奇怪的结果。 谢谢

【问题讨论】:

【参考方案1】:

行数:

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。

【讨论】:

以上是关于具有重复电子邮件 ID 的不同行数的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas - 连接两个具有不同行数和列数的数据框

SQL查询以选择具有最小值的不同行

在R中组合两个具有不同行数的数据框[重复]

Netsuite:保存的搜索公式:显示具有最早的自定义日期的不同行

使用t的不同行数在多个矩阵上的学生t检验(已配对)

在所有元素顶部显示全屏不确定进度条[重复]