データベースで重複したメールを見つける必要があります。この情報を得るために 1 つのテーブルを探しています。私がこれまでに持っているもの
SELECT name.email, name.ID
From Name
Group BY Name.ID, Name.EMAIL
Having Count(*) > 1
私はそれが間違っていることを知っていますが、適切に書く方法がわかりません。
データベースで重複したメールを見つける必要があります。この情報を得るために 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
知っておく必要があるのは、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
)
どうぞ:
SELECT name.email, COUNT(*)
FROM
Name
GROUP BY
Name.email
HAVING
COUNT(*) > 1
select id,email from
(select id,email,count(email) over (partion by email order by id) cnt from name) where cnt>1