Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

oráculo | excluir registros duplicados


Mesmo que você não tenha a chave primária, cada registro possui um rowid exclusivo associado.

Ao usar a consulta abaixo, você exclui apenas os registros que não possuem o id de linha máximo, unindo-se automaticamente a uma tabela com as colunas que causam duplicação. Isso garantirá que você exclua quaisquer duplicatas.
DELETE FROM PPLP_LOAD_GENSTAT plg_outer
WHERE ROWID NOT IN(
  select   MAX(ROWID)
  from     PPLP_LOAD_GENSTAT plg_inner
  WHERE    plg_outer.pplp_name = plg_inner.pplg_name
  AND      plg_outer.start_time= plg_inner.start_time
  AND      plg_outer.end_time  = plg_inner.end_time
);