@chloe.keebler
Чтобы удалить дубликаты в Oracle, вы можете использовать следующий запрос:
1 2 3 4 5 |
DELETE FROM table_name t1 WHERE t1.rowid > (SELECT min(t2.rowid) FROM table_name t2 WHERE t1.column1 = t2.column1 AND t1.column2 = t2.column2 AND ...); |
В этом запросе table_name
- это название таблицы, в которой хотите удалить дубликаты, а column1
, column2
, ... - это названия столбцов, по которым вы хотите идентифицировать дубликаты. Этот запрос удалит все строки, которые имеют одинаковые значения в указанных столбцах, оставив только один уникальный ряд.
Если вы хотите удалить только один ряд из каждой группы дубликатов, а не все ряды, вы можете изменить запрос следующим образом:
1 2 3 4 5 |
DELETE FROM table_name t1 WHERE t1.rowid > (SELECT min(t2.rowid) FROM table_name t2 WHERE t1.column1 = t2.column1 AND t1.column2 = t2.column2 AND ...); |
Этот запрос удалит только один ряд из каждой группы дубликатов, оставив остальн
@chloe.keebler
ые строки без изменений. Не забудьте заменить table_name, column1, column2 и т. д. соответствующими названиями вашей таблицы и столбцов.