グループ毎に重複が存在することを検知するクエリ

あるカラム(group_id)の値でグルーピングした上で、カラム(value)の値が重複しているgroup_idを抽出したい。

# table: example
group_id    value
1           1
1           2
1           3
2           1
2           3
2           3

例えば上記のようなテーブルがあった場合は、group_id=2のvalue=3が重複している。

以下のようなクエリでで抽出できる

SELECT group_id FROM example GROUP BY group_id HAVING count(group_id) != count(distinct value);

"group byしたカラムのデータ数"と"重複を検知したいカラムをdistinctした際のデータ数"を比べる。重複がない場合それらの数は一致しているはずなので。