我需要计算 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/