Я назвал первую таблицу «тест».
Сначала создайте таблицу, в которой будут храниться все идентичные комбинации ColA и ColB:
create temporary table tmpTable (ColA int, ColB int);
insert into tmpTable select ColA,ColB from test group by ColA, ColB;
Теперь выберите максимальный идентификатор в исходной таблице для каждой идентичной комбинации ColA и ColB. Поместите это в новую таблицу (называемую idsToKeep, потому что это строки, которые мы не хотим удалять):
create temporary table idsToKeep (ID int);
insert into idsToKeep select (select max(ID) from test where test.ColA=tmpTable.ColA and test.ColB=tmpTable.ColB) from tmpTable;
Наконец, удалите все записи из исходной таблицы, которых нет в таблице idsToKeep:
delete from test where ID <> all (select ID from idsToKeep);