Maison > base de données > tutoriel mysql > Comment identifier efficacement les enregistrements en double en fonction de plusieurs colonnes dans SQL ?

Comment identifier efficacement les enregistrements en double en fonction de plusieurs colonnes dans SQL ?

Patricia Arquette
Libérer: 2025-01-04 19:11:39
original
824 Les gens l'ont consulté

How to Efficiently Identify Duplicate Records Based on Multiple Columns in SQL?

Identification des enregistrements en double sur plusieurs colonnes

Le défi posé est de répliquer la fonctionnalité du code SQL fourni, qui vise à identifier et récupérer dupliquez les enregistrements en fonction de la combinaison de deux colonnes, à savoir « nom » et « ville ». L'objectif est d'exclure les cas où une seule colonne, soit « nom » ou « ville », correspond et de ne prendre en compte que les enregistrements dont les deux colonnes sont identiques.

Pour répondre à cette exigence, la réponse fournie exploite une sous-requête pour compter les occurrences des combinaisons « nom » et « ville » dans la table « trucs ». Cette sous-requête compte les lignes regroupées par « nom » et « ville » et filtre les combinaisons dont le nombre est supérieur à 1, indiquant les doublons.

select name, city, count(*) as qty
from [stuff]
group by name, city
having count(*) > 1
Copier après la connexion

La requête principale rejoint ensuite la table « stuff » d'origine. avec les résultats de la sous-requête, correspondant à la fois à « nom » et à « ville ». Cette opération de jointure identifie efficacement les enregistrements en double qui répondent aux critères spécifiés. Le résultat final élimine les faux positifs en excluant les cas où une seule colonne correspond.

select s.id, t.*
from [stuff] s
join (
...
    select name, city, count(*) as qty
    from [stuff]
    group by name, city
    having count(*) > 1
) t on s.name = t.name and s.city = t.city
Copier après la connexion

En conséquence, la requête récupère avec succès le résultat souhaité :

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris
Copier après la connexion

Cette approche fournit un et polyvalente pour identifier les enregistrements en double sur la base de plusieurs colonnes, garantissant l'exactitude et l'exhaustivité des résultats de la requête.

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