2016-04-11 3 views
0

は私が行うことができますMySQLの取得私にそれぞれのカウントを持つすべてFIELDA、FIELDBの重複のリストが表示されますそれらのリストだけでなく、重複しているすべてのレコードが

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

。私が必要とするのは、そのサブセットのすべてのレコードです。特定のFieldA、FieldBコンボのカウントが3の場合、これらのレコードの3つすべてを表示する必要があります。私は無用にさまざまな結合を試みました。各ペアの対応するカウントと一緒にすべてのFieldA,FieldBペアを含む派生テーブルへ

答えて

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 

は、グループ化された1の結果に同じテーブルに参加しましょう。

1

だけJOINあなたのテーブルには:

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 
関連する問題