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 ?
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!