Изучаем СУБД PostgreSQL. Урок 3.
PostgreSQL - удалить дубликаты из базы
Иногда надо удалить дубликаты из таблицы БД. В PostgreSQL особые правила работы с CTE, поэтому тут есть очень лаконичный и красивый способ
Удаление дубликатов в PostgreSQL по ID (или по другому полю)
Вот несколько эффективных способов удалить дубликаты строк в таблице PostgreSQL, сохраняя только одну запись для каждого уникального ID: WITH duplicates AS ( SELECT id, ROW_NUMBER() OVER(PARTITION BY id ORDER BY ctid) AS row_num FROM your_table ) DELETE FROM your_table WHERE (id, ctid) IN ( SELECT id, ctid FROM duplicates WHERE row_num > 1 ); CREATE TABLE your_table_new AS SELECT DISTINCT ON (id) * FROM your_table ORDER BY id, some_timestamp_column; -- можно указать критерий для выбора какой дубликат...