2016-04-11 4 views
0

IHolen Sie sich alle Datensätze, die Duplikate nicht nur die Liste von ihnen sind mySQL

Select FieldA,FieldB,FieldC,Count(*) from TableA Group By FieldA,FieldB having count(*)>1 

tun kann, die mir eine Liste aller FieldA, FieldB Duplikate mit einer Zählung für jeden geben wird. Was ich brauche, sind alle Datensätze in dieser Teilmenge. Wenn eine bestimmte FieldA, FieldB-Kombination eine Anzahl von 3 hat, muss ich alle 3 dieser Datensätze anzeigen. Ich habe verschiedene Joins ausprobiert, ohne Erfolg.

Antwort

0
select a1.* 
from TableA a1 
join 
(
    Select FieldA, FieldB 
    from TableA 
    Group By FieldA, FieldB 
    having count(*) > 1 
) a2 on a1.FieldA = a2.FieldA 
    and a1.FieldB = a2.FieldB 

Registriert die gleiche Tabelle auf dem Ergebnis der gruppierten eins.

1

Gerade JOIN Tisch auf eine abgeleitete Tabelle, die zusammen mit dem entsprechenden Zählwert jedes Paares alle FieldA,FieldB Paare enthält:

select t1.*, t2.cnt 
from TableA t1 
join (
    Select FieldA, FieldB, Count(*) as cnt 
    from TableA 
    Group By FieldA, FieldB 
    having count(*) > 1 
) as t2 on t1.FieldA = t2.FieldA and t1.FieldB = t2.FieldB 
Verwandte Themen