Oracle
 sql >> Base de données >  >> RDS >> Oracle

oracle | supprimer les enregistrements en double

Même si vous n'avez pas la clé primaire, chaque enregistrement est associé à un rowid unique.

En utilisant la requête ci-dessous, vous supprimez uniquement les enregistrements qui n'ont pas l'identifiant de ligne maximal en joignant eux-mêmes une table avec les colonnes qui causent la duplication. Cela garantira que vous supprimez tous les doublons.

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