Удаление дубликатов записей в Postgres
Поделиться ссылкой:
Бывают ситуации когда в таблице Postgresql появляются одинаковые записи, которые необходимо удалить.
Сделать это можно запросом:
DELETE FROM table_name WHERE row_id IN (SELECT MIN(row_id) FROM table_name GROUP BY row_1 HAVING COUNT(*) > 1);
Данный запрос найдет минимальный id записи по которой имеются дубликаты и удалит их.
У данного варианта есть одно ограничение. Он удалит только одну запись. Если одинаковых записей больше чем 2, то запрос придется повторить и повторять до тех пор пока все дубли не будут удалены.