Interrogation de lignes avec des valeurs de colonne non distinctes
En SQL, une tâche courante consiste à récupérer des lignes où la valeur d'une colonne spécifique est pas distinct. Cela peut être utile pour identifier les données en double ou détecter des anomalies.
Exemple de scénario
Considérez un tableau nommé Clients contenant les données suivantes :
CustomerName | EmailAddress |
---|---|
Aaron | [email protected] |
Christy | [email protected] |
Jason | [email protected] |
Eric | [email protected] |
John | [email protected] |
Pour récupérer toutes les lignes où la colonne EmailAddress n'est pas distincte, nous pouvons utiliser la commande suivante requête :
SELECT EmailAddress, CustomerName FROM Customers WHERE EmailAddress IN (SELECT EmailAddress FROM Customers GROUP BY EmailAddress HAVING COUNT(*) > 1)
Explication
La clause IN filtre les valeurs EmailAddress trouvées dans la sous-requête. La sous-requête regroupe toutes les valeurs EmailAddress et compte les occurrences de chaque valeur. La clause HAVING sélectionne ensuite uniquement les groupes avec plus d'une occurrence (c'est-à-dire des valeurs non distinctes).
En utilisant cette approche, nous identifions et renvoyons efficacement les lignes où la colonne EmailAddress n'est pas distincte. Cette méthode est nettement plus rapide que l'utilisation de l'opérateur EXISTS dans la plupart des cas.
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!