Я испортил таблицу базы данных и теперь в ней есть несколько дубликатов.Теперь я хочу удалить все дубликаты.Я нашел их все с помощью следующего запроса:
select order_uuid, changed_at, count(*)
from mobisl_1.t_order_states
group by order_uuid, changed_at
having count (*) > 1;
Дубликаты определяются столбцами 'order_uuid' и 'change_at'.Если комбинация обоих встречается в таблице более одного раза, она определяется как дубликат.
Я получаю набор результатов из 904 строк.Набор результатов, как я ожидал.Теперь я хочу удалить эти дубликаты с помощью
delete from mobisl_1.t_order_states
where ORDER_UUID in (
select order_uuid, changed_at, count(*)
from mobisl_1.t_order_states
group by order_uuid, changed_at
having count (*) > 1
);
. Затем Oracle отображает ошибку ORA-00913: слишком много значений.Что я могу сделать здесь?Я уже пытался ограничить размер результирующего набора некоторым условием (только получить строки с датой ниже x), но без положительного результата.