sql >> Database >  >> RDS >> PostgreSQL

Dubbele rijen uit tabel verwijderen

Je kunt dit proberen meerdere keren :

delete from mytable where id in (
    select max(id)
      from mytable
     group by name
    having count(1) > 1
);

Waar meerdere keren is gelijk aan het maximale aantal herhalingen dat je hebt in name kolom.

Anders kunt u deze complexere zoekopdracht proberen:

delete from mytable where id in (
    select id from mytable
    except 
    (
    select min(id)
      from mytable
     group by name
    having count(1) > 1
    union all
    select min(id)
      from mytable
     group by name
    having count(1) = 1
    )
);

Als u deze query maar één keer uitvoert, moet u alles verwijderen wat u nodig hebt. Heb het echter nog niet geprobeerd...



  1. Selecteer verschillende rijen terwijl u groepeert op maximale waarde

  2. Intel Optane Storage voor SQL Server gebruiken

  3. php - converteren van het ene json-formaat naar het andere

  4. Correct beheer van databasebronnen:cursor en verbinding