mysql - 如何在不计算原始数的情况下找到重复数

标签 mysql join duplicates

我需要计算 mysql 数据库中重复电子邮件的数量,但不计算第一个电子邮件(视为原始电子邮件)。在此表中,查询结果应为单个值“3”(2 个重复的 [email protected] 加 1 个重复的 [email protected])。

表格

ID | Name  | Email
1  | Mike  | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="601820114e030f0d" rel="noreferrer noopener nofollow">[email protected]</a>
2  | Peter | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="09794978276a6664" rel="noreferrer noopener nofollow">[email protected]</a>
3  | Mike  | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7a023a0b54191517" rel="noreferrer noopener nofollow">[email protected]</a>
4  | Mike  | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c0b880b1eea3afad" rel="noreferrer noopener nofollow">[email protected]</a>
5  | Frank | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7b1d3b0a55181416" rel="noreferrer noopener nofollow">[email protected]</a>
6  | Jim   | <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b0d6f0c19ed3dfdd" rel="noreferrer noopener nofollow">[email protected]</a>

我当前的查询生成的不是一个数字,而是多行,每个电子邮件地址一行,无论表中有多少此电子邮件的重复项:

SELECT value, count(lds1.leadid) FROM leads_form_element lds1 LEFT JOIN leads lds2 ON lds1.leadID = lds2.leadID 
     WHERE lds2.typesID = "31" AND lds1.formElementID = '97'  
     GROUP BY lds1.value HAVING ( COUNT(lds1.value) > 1 )

最佳答案

这不是一个查询,所以我不确定它是否适合您的情况,但您可以执行一个查询来选择总行数,执行第二个查询来选择不同的电子邮件地址,然后将两者相减。这将为您提供重复项的总数...

select count(*) from someTable;
select count(distinct Email) from someTable;

事实上,我不知道这是否可行,但您可以尝试在一个查询中完成所有操作:

select (count(*)-(count(distinct Email))) from someTable

就像我说的,未经测试,但请告诉我它是否适合您。

关于mysql - 如何在不计算原始数的情况下找到重复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11479043/

相关文章:

mysql - 内置函数和分组在 Microsoft Access 中不起作用

sql - 获取 x 列的非重复项,但 y 列的重复项

mysql - 简单的mysql查询计数失败

mysql - Vbulletin 错误 1062 (23000) 位于第 38766 行 : Duplicate entry

sql - 基于两列删除重复项

mysql - 通过在 sql 中使用两列从表中删除重复项?

php - 将数据库转移到新实例 aws

sql - MySQL 中的 UDF 性能

php - Solr 与 MySQL 没有返回结果

sql - 从选择查询的列数据中删除特定字符