Maison >base de données >tutoriel mysql >Comment puis-je filtrer les résultats d'une requête SQL en fonction du nombre de lignes au sein des groupes ?

Comment puis-je filtrer les résultats d'une requête SQL en fonction du nombre de lignes au sein des groupes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 21:22:10208parcourir

How Can I Filter SQL Query Results Based on Row Counts Within Groups?

Filtrage par nombre : utilisation de HAVING pour le filtrage agrégé des requêtes

En SQL, il est possible de filtrer les données en fonction du nombre de lignes qui correspondent un critère particulier. Pour ce faire, vous pouvez utiliser la clause HAVING en conjonction avec des fonctions d'agrégation telles que COUNT(*).

Question :

Pouvez-vous regrouper les résultats et filtrer par nombre de lignes au sein d'un groupe ? Par exemple :

SELECT * FROM mytable WHERE COUNT(*) > 1 GROUP BY name

Réponse :

Pour filtrer en fonction d'une fonction d'agrégation telle que COUNT(*), vous devez utiliser la clause HAVING au lieu de la clause WHERE . La clause HAVING est spécifiquement conçue pour filtrer des groupes de données après leur agrégation.

SELECT name, COUNT(*)
FROM mytable
GROUP BY name
HAVING COUNT(*) > 1

Cette requête regroupera les lignes de la table 'mytable' par la colonne 'name' et calculera le nombre pour chaque groupe. Il filtrera ensuite les résultats pour inclure uniquement les groupes dont le nombre est supérieur à 1.

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