GROUP BY regroupe les données de même valeur et exécute la fonction d'agrégation ; HAVING filtre les données groupées : définit les conditions en fonction de la fonction d'agrégation ou de la clé de regroupement ; après le regroupement de GROUP BY, HAVING filtre les résultats du regroupement et s'applique uniquement aux données groupées. données agrégées.
La relation entre GROUP BY et HAVING dans MySQL
GROUP BY et HAVING sont deux clauses dans MySQL utilisées pour agréger et filtrer les données. Les deux travaillent ensemble pour résumer et filtrer les données groupées. La clause
GROUP BY
GROUP BY regroupe les données de même valeur et exécute des fonctions d'agrégation telles que SUM, COUNT et AVG sur chaque groupe. Il divise l'ensemble de données en différents groupes, chaque groupe a une valeur clé unique ou un ensemble de valeurs clés. La clause
HAVING
HAVING est utilisée pour filtrer les données regroupées par GROUP BY. Elle est similaire à la clause WHERE, mais s'applique uniquement aux données agrégées. La clause HAVING permet aux utilisateurs de filtrer les groupes en fonction des résultats d'agrégation, par exemple :
Relation
La relation entre GROUP BY et HAVING est la suivante :
Exemple
La requête suivante utilise GROUP BY et HAVING pour regrouper et filtrer le tableau des commandes :
<code class="sql">SELECT product_category, SUM(quantity) AS total_quantity FROM orders GROUP BY product_category HAVING SUM(quantity) > 100;</code>
Cette requête regroupe les commandes par catégorie de produits et calcule la quantité totale pour chaque catégorie. Il utilise ensuite HAVING pour filtrer les catégories dont le nombre total est inférieur à 100.
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!