mySQL查询,以返回具有重复字段的结果


mySQL query to return results that have a duplicate field?

我有一个mySQL表,其中包含基于付款的行。

每一行都包含他们的电子邮件地址,所以我想使用mySQL和PHP编写一个查询,以了解有多少人在这个表中有2个或多个条目。

这基本上是为了知道他们是否通过购买两个套餐或续订订阅向我们支付了不止一次的费用。

最好的方法是什么?

select distinct email, count(*) as rowcount
from datatable
group by email
having rowcount > 1

编辑:我把上面的都写下来了。对Oracle的快速测试表明,语法有点错误,应该是

select distinct email, count(*) as rowcount
from datatable
group by email
having count(*) > 1

但这可能只是Oracle不允许在have子句中使用别名列。我不确定mySQL会允许什么。

SELECT email, COUNT(email) as c_email FROM emails_table WHERE c_email > 1;