Maison >base de données >tutoriel mysql >SQL peut-il filtrer les résultats groupés en fonction du nombre de lignes ?

SQL peut-il filtrer les résultats groupés en fonction du nombre de lignes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 16:13:17946parcourir

Can SQL Filter Grouped Results Based on Row Count?

Filtrage par nombre de groupes

En SQL, il est possible de regrouper les résultats et de filtrer en fonction du nombre de lignes dans chaque groupe. Ceci peut être réalisé en utilisant la clause HAVING.

Considérez l'exigence suivante :

Énoncé du problème :

Est-il possible de regrouper les résultats puis filtrer selon le nombre de lignes du groupe ? Par exemple :

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

Solution :

La clause HAVING nous permet d'appliquer un filtre sur une fonction d'agrégation. Dans ce cas, nous pouvons filtrer sur la fonction d'agrégation COUNT(*) pour sélectionner des groupes comportant plus d'une ligne. La syntaxe correcte est :

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

Cette requête renverra tous les noms uniques et le nombre de lignes associées à chaque nom, où 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