Sobes.tech
Middle
30

Как очистить таблицу от дублирующихся данных в SQL?

Компании, где спрашивали
ИннотехИннотех

Ответ от нейросети

sobes.tech AI

Чтобы очистить таблицу от дублирующихся записей в SQL, обычно используют подход с удалением строк, которые повторяются, оставляя только одну уникальную запись. Один из распространённых способов — использовать CTE (Common Table Expression) с функцией ROW_NUMBER() для нумерации дубликатов и удаления всех, кроме первой записи.

Пример для SQL Server или PostgreSQL:

WITH CTE AS (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY column1, column2, column3 ORDER BY id) AS rn
  FROM your_table
)
DELETE FROM your_table
WHERE id IN (
  SELECT id FROM CTE WHERE rn > 1
);

Здесь column1, column2, column3 — набор столбцов, по которым определяется дубликат, а id — уникальный идентификатор строки.

Если СУБД не поддерживает CTE, можно использовать временную таблицу или подзапросы. Важно сначала определить критерии уникальности, чтобы корректно удалить именно дубликаты.