Heim >Datenbank >MySQL-Tutorial >Wie lösche ich doppelte Zeilen in Netezza ohne eindeutige Kennung?
Duplikate ohne eindeutige Kennung entfernen: Netezza-Lösung
In großen Netezza-Tabellen kann das Entfernen doppelter Zeilen ohne eindeutige Bezeichner eine schwierige Aufgabe sein. Während die bereitgestellte SQL-Abfrage möglicherweise in anderen Datenbanken funktioniert, schlägt sie in Netezza aufgrund von Einschränkungen der DELETE-Klausel nach der WITH-Anweisung fehl.
Um diese Herausforderung zu meistern, schlagen wir einen alternativen Ansatz unter Verwendung des USING-Schlüsselworts vor. Die folgende Netezza-Abfrage kann doppelte Zeilen nahtlos entfernen:
<code class="language-sql">DELETE FROM table_with_dups T1 USING table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
So funktioniert es:
T1.ctid < T2.ctid
stellt sicher, dass nur eine der doppelten Zeilen gelöscht wird. Sie können Duplikate sehen, indem Sie DELETE durch SELECT * und USING durch ein Komma (,) ersetzen, bevor Sie DELETE ausführen:
<code class="language-sql">SELECT * FROM table_with_dups T1, table_with_dups T2 WHERE T1.ctid < T2.ctid AND T1.column1 = T2.column1 AND T1.column2 = T2.column2 -- ... add more AND conditions for other columns as needed ...</code>
Alles in allem bietet diese Netezza-Abfrage eine effiziente Lösung zum Entfernen doppelter Zeilen ohne eindeutige Kennung, ohne dass komplexe Unterabfragen oder Fensterfunktionen erforderlich sind.
Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen in Netezza ohne eindeutige Kennung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!