Чтобы удалить повторяющиеся записи в SQL, вы можете использовать несколько методов. Вот несколько примеров:
Метод 1. Использование временной таблицы
-- Step 1: Create a temporary table with distinct records
SELECT DISTINCT *
INTO #temp
FROM your_table;
-- Step 2: Delete all records from the original table
DELETE FROM your_table;
-- Step 3: Insert the distinct records back into the original table
INSERT INTO your_table
SELECT *
FROM #temp;
-- Step 4: Drop the temporary table
DROP TABLE #temp;
Метод 2. Использование CTE (общего табличного выражения)
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY (SELECT 0)) AS rn
FROM your_table
)
DELETE FROM CTE
WHERE rn > 1;
Метод 3. Использование предложения EXISTS
DELETE FROM your_table
WHERE EXISTS (
SELECT 1
FROM your_table AS t2
WHERE your_table.column1 = t2.column1
AND your_table.column2 = t2.column2
AND your_table.column3 = t2.column3
...
AND your_table.primary_key_column > t2.primary_key_column
);
Метод 4. Использование предложения GROUP BY
DELETE FROM your_table
WHERE primary_key_column NOT IN (
SELECT MIN(primary_key_column)
FROM your_table
GROUP BY column1, column2, ...
);
Обратите внимание, что вам необходимо заменить «ваша_таблица» фактическим именем вашей таблицы, а «столбец1», «столбец2» и т. д. — именами столбцов вашей таблицы, которые вы хотите учитывать при выявлении дубликатов.п>