Oracle
 sql >> Database >  >> RDS >> Oracle

oracolo | eliminare i record duplicati

Anche se non hai la chiave primaria, ogni record ha un rowid univoco associato.

Utilizzando la query seguente si eliminano solo i record che non hanno l'ID riga massimo unendo automaticamente una tabella con le colonne che causano la duplicazione. In questo modo eliminerai tutti i duplicati.

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
);