Maison >base de données >tutoriel mysql >Comment supprimer les lignes PostgreSQL en double tout en conservant une copie ?
Conserver une seule copie : supprimer les lignes PostgreSQL en double
Dans le domaine de la gestion des données, rencontrer des lignes en double peut poser un défi. PostgreSQL, un système de gestion de bases de données relationnelles populaire, propose diverses options pour gérer de telles situations. Un scénario spécifique se produit lorsque les utilisateurs cherchent à supprimer les lignes en double tout en préservant une seule copie de chaque ensemble.
Solution de requête
Pour y parvenir, une requête SQL peut être utilisée. . La requête suivante suit les étapes décrites dans l'article fourni :
DELETE FROM foo WHERE id NOT IN (SELECT min(id) --or max(id) FROM foo GROUP BY hash)
Explication
Cette requête utilise une sous-requête pour identifier la valeur d'ID minimale ou maximale pour chaque groupe. de lignes en double. La colonne de hachage représente un critère sur la base duquel la duplication est déterminée. En excluant les identifiants ne correspondant pas au minimum ou au maximum, la requête conserve une seule copie de chaque ensemble de doublons tout en supprimant le reste.
Requête alternative
Une approche alternative implique l'utilisation de la fonction ROW_NUMBER() OVER() :
DELETE FROM foo AS f WHERE ROW_NUMBER() OVER (PARTITION BY hash ORDER BY id) > 1
Cette requête attribue un numéro de ligne à chaque ligne, partitionné par la colonne de hachage et trié par la colonne id par ordre croissant. Les lignes dont le numéro de ligne est supérieur à 1 (c'est-à-dire les doublons) sont ensuite supprimées.
Conclusion
En implémentant l'une ou l'autre des requêtes présentées dans PostgreSQL, les utilisateurs peuvent supprimer efficacement les doublons. lignes tout en préservant une seule copie de chaque ensemble. Cette approche permet de supprimer les données redondantes tout en préservant l'intégrité de l'ensemble de données d'origine.
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!