Maison >base de données >tutoriel mysql >Comment supprimer les lignes en double dans Netezza sans identifiant unique ?

Comment supprimer les lignes en double dans Netezza sans identifiant unique ?

DDD
DDDoriginal
2025-01-12 11:28:44740parcourir

How to Delete Duplicate Rows in Netezza Without a Unique Identifier?

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 :

  • Le mot clé USING associe deux tables T1 et T2, permettant d'effectuer une opération DELETE sur T1 tout en référençant T2 pour identifier les doublons.
  • La
  • Condition T1.ctid < T2.ctid garantit qu'une seule des lignes en double est supprimée.
  • La condition AND spécifie les colonnes utilisées pour définir les doublons.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn