warlinx
@warlinx

Как удалить дубликаты Oracle SQL?

Есть таблица с несколькими столбцами. В некоторых столбцах имеются повторяющиеся значения. Нужно удалить те строки, где в столбцах значения повторяются
Например
item column column1 column 2

И аналогично, нужно вывести все дублирующиеся строки
  • Вопрос задан
  • 6213 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Вывод дубликатов:
SELECT t1.*
FROM table t1
WHERE EXISTS ( SELECT NULL
               FROM table t2
               WHERE t1.id <> t2.id -- выражение первичного ключа
                 AND t1.column = t2.column -- для всех полей, кроме первичного ключа


Удаление:
DELETE 
FROM table t1
WHERE EXISTS ( SELECT NULL
               FROM table t2
               WHERE t1.id > t2.id -- оставить только запись с минимальным ID
                 AND t1.column = t2.column
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы