1

我需要在我的数据库表中查询有关重复值的统计信息。例如,假设我有一个电子邮件字段,并且多行可以有相同的电子邮件。我知道想知道的是多少个地址被重复了多少次。换句话说:“908 封邮件重复 10 次,1783 封邮件重复 9 次”等等。

Repeated       # of Emails
10             908
9              1783

我不需要查看实际的电子邮件地址,只需查看这些统计信息。

知道我有这个查询,它也检索电子邮件地址:

select email_address,
count(email_address) as NumberOccurrences
from table_user_info
group by email_address
having ( count(email_address) > 1 )

我如何对这些结果进行分组?

4

2 回答 2

2

COUNT()带有子查询的聚合也返回聚合将COUNT()提供此功能。子查询对每个电子邮件地址进行分组和计数,如 中abc@example.com - 10,然后外部查询按子查询返回的重复次数进行计数和分组,丢弃实际的电子邮件地址。

SELECT
  repeated,
  COUNT(*) AS numemails
FROM (
  SELECT 
     email,
     COUNT(*)
  FROM emails
  GROUP BY email
) emailcounts
于 2012-06-20T20:12:20.250 回答
0
select email_address,
       count(email_address) as NumberOccurrences
from table_user_info
group by email_address
having count(*) > 1
于 2012-06-20T20:18:25.377 回答