sql >> Databasteknik >  >> RDS >> PostgreSQL

Ta bort dubblett från en tabell

Detta är en av många anledningar till att alla tabeller bör ha en primärnyckel (inte nödvändigtvis ett ID-nummer eller IDENTITET, utan en kombination av en eller flera kolumner som unikt identifierar en rad och som har sin unikhet framtvingad i databasen).

Din bästa insats är ungefär så här:

SELECT field1, field2, field3, count(*) 
INTO temp_table1
FROM table1
GROUP BY field1, field2, field3 having count(*) > 1

DELETE T1
FROM table1 T1
INNER JOIN (SELECT field1, field2, field3
      FROM table1
      GROUP BY field1, field2, field3 having count(*) > 1) SQ ON
            SQ.field1 = T1.field1 AND
            SQ.field2 = T1.field2 AND
            SQ.field3 = T1.field3

INSERT INTO table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM temp_table1

DROP TABLE temp_table1


  1. SQL Data Control Language

  2. Vad är MELLAN Logical Operator i SQL Server - SQL Server / TSQL Tutorial Del 124

  3. Hur man klona användare i Oracle

  4. Hur hanterar jag att öppna/stänga Db-anslutning i en Go-app?