Heim >Datenbank >MySQL-Tutorial >Wie behalte ich nur eine Kopie doppelter Zeilen in PostgreSQL?
Eine Kopie doppelter Zeilen in Postgres beibehalten
Beim Umgang mit doppelten Daten ist es oft notwendig, die Redundanzen zu entfernen und gleichzeitig mindestens eine Kopie beizubehalten Instanz jedes Duplikatsatzes. In Postgres kann dies durch den folgenden Ansatz erreicht werden:
Um doppelte Zeilen zu löschen und gleichzeitig eine einzelne Kopie beizubehalten, können wir die folgende Abfrage verwenden:
DELETE FROM foo WHERE id NOT IN ( SELECT MIN(id) -- or MAX(id) for the latest copy FROM foo GROUP BY hash );
In dieser Abfrage:
Durch Verwendung von MIN(id) oder MAX( id) innerhalb der Unterabfrage stellen wir sicher, dass nur die älteste oder neueste Kopie jedes Duplikatsatzes beibehalten wird.
Dieser Ansatz stellt sicher, dass mindestens eine Kopie jeder Duplikatzeile vorhanden ist in der Tabelle beibehalten, während unnötige Duplikate entfernt werden.
Das obige ist der detaillierte Inhalt vonWie behalte ich nur eine Kopie doppelter Zeilen in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!