sql >> Database >  >> RDS >> Oracle

orakel | dubbele records verwijderen

Zelfs als je de primaire sleutel niet hebt, heeft elke record een unieke rowid.

Door de onderstaande query te gebruiken, verwijdert u alleen de records die niet de maximale rij-ID hebben door zichzelf samen te voegen met een tabel met de kolommen die duplicatie veroorzaken. Dit zorgt ervoor dat u alle duplicaten verwijdert.

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


  1. Hoe CHAR() werkt in MariaDB

  2. Een doorlopend totaal voor een voortschrijdende periode maken

  3. Kan de IN-operator LIKE-jokertekens (%) gebruiken in Oracle?

  4. MySQL-verbinding op afstand mislukt met onbekende authenticatiemethode