Maison >base de données >tutoriel mysql >Comment supprimer les lignes en double dans Netezza sans identifiant unique ?
Supprimer les doublons sans identifiant unique : solution Netezza
Dans les grandes tables Netezza, la suppression des lignes en double peut être une tâche difficile sans identifiants uniques. Même si la requête SQL fournie peut fonctionner dans d'autres bases de données, elle échoue dans Netezza en raison des limitations de la clause DELETE après l'instruction WITH.
Pour surmonter ce défi, nous proposons une approche alternative utilisant le mot-clé USING. La requête Netezza suivante peut supprimer les lignes en double de manière transparente :
<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>
Voici comment cela fonctionne :
T1.ctid < T2.ctid
garantit qu'une seule des lignes en double est supprimée. Vous pouvez voir les doublons en remplaçant DELETE par SELECT * et USING par une virgule (,) avant d'exécuter DELETE :
<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>
Dans l'ensemble, cette requête Netezza fournit une solution efficace pour supprimer les lignes en double sans identifiant unique, sans avoir besoin de sous-requêtes complexes ou de fonctions de fenêtre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!