Для select
, просто введите GROUP BY
, используйте min()
, чтобы получить первый идентификатор для каждой группы:
select min(id), col2, col3
from tablename
group by col2, col3
Для delete
нежелательных строк, просто введите GROUP BY
, используйте min()
, чтобы получить первый идентификатор для каждой группы:
delete from tablename t1
where exists (select 1 from tablename t2
where t2.c2 = t1.c2 and t2.c3 = t1.c3
and t2.idcol < t1.idcol)
т.е. удалить строку, если существует другая строка с такими же col2 и col3, но эта строка имеет меньшее значение id.