Как удалить дублирующиеся строки из таблицы, оставив только уникальные записи?
Уровень: Middle
Ответ
Один из способов: удалить "лишние" записи через подзапрос, оставив, например, запись с минимальным ID в каждой группе дубликатов. Пример: DELETE FROM T WHERE id NOT IN (SELECT MIN(id) FROM T GROUP BY duplicate_field). Этот запрос сохранит для каждого значения duplicate_field строку с минимальным id, а остальные удалит. В других СУБД можно использовать оконную функцию ROW_NUMBER() и удалить строки, у которых ROW_NUMBER() > 1 (после partition by нужного поля и сортировки).