У меня есть такие дубликаты
col1, col2 1, alex 1, alex 2, liza 2, liza 3, peter 3, peter
, только два из них.как удалить дубликаты?
WITH q AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col1, col2) AS rn FROM mytable ) DELETE FROM q WHERE rn >= 2
Смотрите здесь:
Если исходная таблица невелика.
select distinct * from origin_table into temp_table; truncate table origin_table; insert into origin_table select * from temp_table ; drop table temp_table;
insert into table_new Select col1, col2, min(pk) as pk from table_old group by col1, col2 -- debug table_new drop table_old