Maison > base de données > tutoriel mysql > Comment puis-je supprimer les lignes en double dans PostgreSQL tout en conservant une seule copie ?

Comment puis-je supprimer les lignes en double dans PostgreSQL tout en conservant une seule copie ?

Linda Hamilton
Libérer: 2025-01-06 10:05:40
original
131 Les gens l'ont consulté

How Can I Delete Duplicate Rows in PostgreSQL While Preserving a Single Copy?

Conservation d'une seule copie : suppression des lignes en double non identiques

Le maintien de l'intégrité des données implique souvent la suppression des enregistrements redondants des bases de données. Toutefois, dans certains scénarios, il peut être nécessaire de conserver une copie de chaque groupe de lignes en double. Cet article aborde le défi de la suppression de toutes les lignes sauf une d'un ensemble de doublons dans PostgreSQL.

Solution : suppression sélective à l'aide d'identifiants uniques

La requête fournie dans la solution utilise le concept de regroupement et de sélection de la valeur minimale (ou maximale) d'un champ d'identifiant unique au sein de chaque groupe de doublons. En excluant les lignes avec cet identifiant minimum (ou maximum) du processus de suppression, une seule copie de chaque ligne unique peut être conservée.

La requête suivante illustre cette approche :

DELETE FROM foo
WHERE id NOT IN (SELECT min(id) FROM foo GROUP BY hash);
Copier après la connexion

Dans Dans cette requête, le champ de hachage représente une caractéristique unique ou une combinaison de caractéristiques qui définit les ensembles en double. En sélectionnant la valeur d'identification minimale de chaque groupe, la requête identifie la ligne qui sera conservée et exclut les lignes en double restantes de la suppression.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal