6

データベースで重複したメールを見つける必要があります。この情報を得るために 1 つのテーブルを探しています。私がこれまでに持っているもの

 SELECT name.email, name.ID

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

私はそれが間違っていることを知っていますが、適切に書く方法がわかりません。

4

7 に答える 7

12

を削除します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
于 2013-03-05T12:56:51.460 に答える
4

クエリは次のようになります

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
)
于 2013-03-05T13:10:11.603 に答える
1

どうぞ:

SELECT name.email, COUNT(*)
FROM
    Name
GROUP BY
    Name.email
HAVING 
    COUNT(*) > 1
于 2013-03-05T13:02:25.943 に答える
0
 select id,email from 
 (select id,email,count(email) over (partion by email order by id) cnt from name) where cnt>1
于 2013-03-05T13:32:01.340 に答える