Петр, похоже на комментарии, ты хочешь КОМБИНАЦИЮ ...
Включает в себя:
Все строки, где идентификатор встречается ТОЛЬКО ОДИН РАЗ
Все строки, в которых идентификатор встречается более одного раза - И все остальные поля в записи совпадают
ИСКЛЮЧИТЬ:
Любая строка, в которой идентификатор встречается более одного раза - И другие поля не совсем совпадают.
select ID, min(a) a, min(b) b
from YourTable
group by ID
having min(a) = max(a)
and min(b) = max(b)
Если у вас есть еще столбцы для сравнения, кроме a и b, просто добавьте соответствующие значения в список выбора полей и соответствующие им значения. Из предоставленного вами образца данных значения, возвращаемые запросом, будут
ID MIN(A) MIN(B) Having MIN(A) MAX(A) MIN(B) MAX(B)
1 2 3 2 2 3 3
2 8 7 8 8 7 7
3 9 10 9 20 10 12
Таким образом, строка ID = 3 будет сброшена, поскольку произойдет сбой при наличии одинакового min () и max () одного и того же столбца в обоих столбцах. Затем вы можете скопировать это в новую таблицу. Только один проход через стол ...