Это должно быть достаточно быстро (даже быстрее, если dupeFields проиндексированы).
SELECT DISTINCT a.id, a.dupeField1, a.dupeField2
FROM TableX a
JOIN TableX b
ON a.dupeField1 = b.dupeField2
AND a.dupeField2 = b.dupeField2
AND a.id != b.id
Полагаю, единственным недостатком этого запроса является то, что, поскольку вы не выполняете COUNT(*)
, вы не можете проверить количество раз , оно дублируется, только то, что оно появляется более одного раза .