Maison  >  Article  >  programmation quotidienne  >  La relation entre groupe par et avoir dans MySQL

La relation entre groupe par et avoir dans MySQL

下次还敢
下次还敢original
2024-04-27 01:57:151120parcourir

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 groupe par et avoir dans MySQL

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 :

  • Filtrer les groupes avec une moyenne spécifique
  • Filtrer les groupes contenant un nombre de groupes supérieur à un seuil spécifique
  • Filtrer les groupes avec une valeur nulle ou non nulle valeurs

Relation

La relation entre GROUP BY et HAVING est la suivante :

  • GROUP BY regroupe d'abord les données, puis HAVING filtre les données groupées.
  • Les conditions de la clause HAVING doivent utiliser une fonction d'agrégation ou faire référence à une clé de regroupement.
  • Avant d'AVOIR un groupe de filtrage, le regroupement GROUP BY doit être effectué en premier.

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!

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