Maison >base de données >tutoriel mysql >Comment récupérer les valeurs de colonne correspondantes dans MySQL à l'aide de l'agrégation et de HAVING ?

Comment récupérer les valeurs de colonne correspondantes dans MySQL à l'aide de l'agrégation et de HAVING ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-22 21:12:11758parcourir

How to Retrieve Matching Column Values in MySQL Using Aggregation and HAVING?

Récupérer efficacement les valeurs de colonne correspondantes dans MySQL

Les requêtes de base de données nécessitent souvent de récupérer des lignes en fonction de correspondances de valeurs de colonne spécifiques. Cette tâche devient plus complexe lorsqu'il s'agit de grandes tables. Cet exemple démontre une méthode efficace utilisant les fonctions d'agrégation de MySQL et la clause HAVING.

Considérons un exemple de tableau :

<code>ID | Score
-----
1 | 95
2 | 100
3 | 88
4 | 100
5 | 73</code>

Le but est de trouver des scores communs à l'ID 2 et à l'ID 4. Le résultat attendu est 100.

Les capacités d'agrégation de MySQL offrent une solution élégante :

<code class="language-sql">SELECT score
FROM t
GROUP BY score
HAVING SUM(id = 2) > 0 AND SUM(id = 4) > 0;</code>

Cette requête regroupe les données par score. La clause HAVING utilise ensuite des fonctions d'agrégation pour vérifier la présence de l'ID 2 et de l'ID 4 dans chaque groupe. SUM(id = 2) > 0 compte les occurrences de l'ID 2 et SUM(id = 4) > 0 compte les occurrences de l'ID 4. Seuls les scores où les deux comptes sont supérieurs à zéro sont renvoyés. Cela garantit que seuls les scores associés aux deux identifiants sont inclus dans le résultat.

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