Можно создать дубликат:
Oracle Delete Rows Matching On Multiple ValuesКак удалить повторяющиеся строки из базы данных Oracle?
У нас есть таблица, которая имела те же данные, вставленные в него дважды случайно означающего большинство (но не все) строки появляется дважды в таблице. Проще говоря, я бы хотел, чтобы оператор SQL удалял одну версию строки, сохраняя другую; Я не против, какая версия будет удалена, поскольку они идентичны.
Структура таблицы что-то вроде:
FID, unique_id, COL3, COL4 ....
Unique_ID
является первичным ключом, то есть каждый из них появляется только один раз. FID
- это ключ, уникальный для каждой функции, поэтому, если он появляется более одного раза, дубликаты должны быть удалены.
Для выбора функций, которые имеют дубликаты будут:
select count(*) from TABLE GROUP by FID
К сожалению, я не могу понять, как перейти от к SQL удалить заявление, которое будет удалять лишние строки оставив только один из каждого.
Этот вопрос был задан раньше, и я попытался создать таблицу с отличным, но как мне получить все столбцы, не называя их? Это только получает один столбец FID и перечислением всех столбцов, чтобы держать дает оценку: ORA-00936: missing expression
CREATE TABLE secondtable NOLOGGING as select distinct FID from TABLE
После того, как вы получите решение, я серьезно рекомендую вам нормализовать вашу базу данных, поскольку дублированные записи (так называемая избыточность), скорее всего, являются результатом не нормированной базы данных. – Kushal
@ Kush - мы не можем нормализовать базу данных, потому что ее используют многие различные приложения. Это результат того, что кто-то загрузил данные дважды в 2007 году, но мы этого не используем, поэтому раньше не замечали. Спасибо за предложение, хотя –