Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查找重复的电子邮件地址_Sql - Fatal编程技术网

Sql 查找重复的电子邮件地址

Sql 查找重复的电子邮件地址,sql,Sql,我需要在我们的数据库中找到重复的电子邮件。我在一张桌子上寻找这些信息。到目前为止我所拥有的 SELECT name.email, name.ID From Name Group BY Name.ID, Name.EMAIL Having Count(*) > 1 我知道这是错误的,但不知道如何正确地编写它。删除ID SELECT name.email From Name Group BY Name.EMAIL Having Count(*) > 1 如果你

我需要在我们的数据库中找到重复的电子邮件。我在一张桌子上寻找这些信息。到目前为止我所拥有的

 SELECT name.email, name.ID

 From Name
 Group BY Name.ID, Name.EMAIL
 Having Count(*) > 1

我知道这是错误的,但不知道如何正确地编写它。

删除
ID

 SELECT name.email
 From   Name
 Group  BY Name.EMAIL
 Having Count(*) > 1
如果你想知道电子邮件的号码

 SELECT name.email, COUNT(*) totalEmailCount
 From   Name
 Group  BY Name.EMAIL
 Having Count(*) > 1
给你:

SELECT name.email, COUNT(*)
FROM
    Name
GROUP BY
    Name.email
HAVING 
    COUNT(*) > 1
问题是

SELECT name.email, COUNT(*) FROM Name 
GROUP BY Name.email HAVING COUNT(*) > 1
您需要知道的是,如果您也按ID分组,则计数将为1,这就是您的查询不起作用的原因

如果您需要知道电子邮件重复用户的ID,您可以这样做:

select Name.ID, Name.Email from Name where Name.Email in (

SELECT name.email FROM Name 
    GROUP BY Name.email HAVING COUNT(*) > 1
)

下面的SQL查询将返回包含相同(重复)电子邮件的第一个匹配行的ID和电子邮件

从名称组中选择ID,通过电子邮件计数(电子邮件)>1的电子邮件发送电子邮件

如果某人想要从名称表中获得所有重复的电子邮件,他/她可以执行以下SQL查询

通过计数(电子邮件)>1的电子邮件从名称组中选择电子邮件


请注意:SQL是一种完全不区分大小写的语言。

您还可以在查询的选择部分添加
选择名称。电子邮件,计数(1)
查找重复数确保您的排序设置为忽略大小写。@DanielA.White我认为默认情况下它是
不区分大小写的。
@JW。取决于服务器的类型。@Kane是的,您也可以这样做:D
 select id,email from 
 (select id,email,count(email) over (partion by email order by id) cnt from name) where cnt>1