2016-09-04 6 views
-1

データ表があり、重複する値が存在する場所を特定しようとしています。私は重複を返すクエリを書くことができますが、私はすべてのレコードを返すために、クエリの後だし、それは例えば重複を識別するための列

の発生回数を表示するには「カウント」列を追加し、

ID Name Surname Email 
1 Adam Smith [email protected] 
2 Bob Clark [email protected] 
3 Andy Smith [email protected] 

クエリが返されるようにする:

ID Name Surname Email    Count 
1 Adam Smith [email protected] 2 
2 Bob Clark [email protected] 1 
3 Andy Smith [email protected] 2 

ありがとう。

あなたが重複し、一致する電子メールであることを考えると仮定すると、この1つは動作します

答えて

0

SELECT T.id, T.name, T.surname, T.email, sub.count 
FROM T 
LEFT JOIN 
(SELECT email, COUNT(*) AS count 
FROM T 
GROUP BY email) sub 
ON T.email = sub.email 

あなたは姓と電子メールの両方が重複したと見なされるために一致させたい場合は、この試してみてください。

をここでテスト
SELECT T.id, T.name, T.surname, T.email, sub.count 
FROM T 
LEFT JOIN 
(SELECT email, surname, COUNT(*) AS count 
FROM T 
GROUP BY email, surname) sub 
ON T.email = sub.email 
AND T.surname = sub.surname 

http://sqlfiddle.com/#!9/84c041/2

0
Select A.* 
     ,B.Count 
From YourTable A 
Join (Select Email,count=count(*) From YourTable Group By EMail) B 
    on A.EMail=B.EMail 
+0

をいくつかの説明を追加 – HaveNoDisplayName

関連する問題