Удаление дубликатов записей в Postgres

26.03.2020 0 Автор grigory

Поделиться ссылкой:

Бывают ситуации когда в таблице 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, то запрос придется повторить и повторять до тех пор пока все дубли не будут удалены.