résumé: dans ce tutoriel, vous apprendrez à utiliser MySQLGROUP BY
pour regrouper des lignes en sous-groupes en fonction des valeurs de colonnes ou d’expressions.
Introduction à MySQL GROUP BY clause
la clauseGROUP BY
regroupe un ensemble de lignes dans un ensemble de lignes récapitulatives par valeurs de colonnes ou d’expressions. La clauseGROUP BY
renvoie une ligne pour chaque groupe. En d’autres termes, il réduit le nombre de lignes dans le jeu de résultats.,
Vous utilisez souvent le GROUP BY
l’article avec les fonctions d’agrégation SUM
, AVG
, MAX
, MIN
et COUNT
. La fonction d’agrégation qui apparaît dans la clauseSELECT
fournit des informations sur chaque groupe.
Le GROUP BY
clause est une clause facultative de la balise SELECT
déclaration., L’exemple suivant illustre le GROUP BY
clause de syntaxe:
Le GROUP BY
clause doit apparaître après la balise FROM
et WHERE
clauses. Après les mots-clés GROUP BY
se trouve une liste de colonnes ou d’expressions séparées par des virgules que vous souhaitez utiliser comme critères pour regrouper les lignes.,
MySQL evaluates the GROUP BY
clause after the FROM
, WHERE
and SELECT
clauses and before the HAVING
, ORDER BY
and LIMIT
clauses:
MySQL GROUP BY examples
Let’s take some example of using the GROUP BY
clause.,
A) groupe MySQL Simple par exemple
jetons un coup d’œil à la tableorders
dans l’exemple de base de données.,
Supposons que vous souhaitez regrouper des valeurs de l’ordre de l’état en sous-groupes, vous utilisez la balise GROUP BY
l’article avec la balise status
colonne de la requête suivante:
Code language: SQL (Structured Query Language) (sql)
Essayer
Comme vous pouvez le voir, la balise GROUP BY
clause renvoie unique occurrences de status
valeurs., Il fonctionne comme le DISTINCT
opérateur comme indiqué dans la requête suivante:
Code language: SQL (Structured Query Language) (sql)
Essayer
B) à l’Aide de MySQL GROUPE avec des fonctions d’agrégation
Les fonctions d’agrégation permettent d’effectuer le calcul d’un ensemble de lignes et de retourner une valeur unique. La clauseGROUP BY
est souvent utilisée avec une fonction d’agrégation pour effectuer un calcul et renvoyer une seule valeur pour chaque sous-groupe.,
Par exemple, si vous voulez savoir le nombre de commandes dans chaque état, vous pouvez utiliser la balise COUNT
fonction avec la balise GROUP BY
l’article comme suit:
Code language: SQL (Structured Query Language) (sql)
Essayer
Voir la suite orders
et orderdetails
tableau.,
Pour obtenir le montant total de toutes les commandes en fonction de leur statut, vous rejoignez le orders
table avec la balise orderdetails
table et utiliser la balise SUM
fonction pour calculer le montant total. Voir la requête suivante:
Code language: SQL (Structured Query Language) (sql)
Essayer
de Même, la requête suivante renvoie les numéros de commande et le montant total de chaque commande.,
Code language: SQL (Structured Query Language) (sql)
Essayer
C) MySQL GROUPE PAR exemple d’expression
En plus des colonnes, vous pouvez regrouper des lignes par des expressions. La requête suivante obtient le total des ventes pour chaque année.
Essayer
Dans cet exemple, nous avons utilisé la balise YEAR
fonction pour extraire des données de l’année à partir de la date de commande ( orderDate
)., Nous avons inclus uniquement les commandes avec le statutshipped
dans le total des ventes. Notez que l’expression qui apparaît dans la clause SELECT
doit être la même que celle de la clause GROUP BY
.
D) en utilisant MySQL GROUP BY with HAVING clause example
pour filtrer les groupes renvoyés par la clauseGROUP BY
, vous utilisez une clauseHAVING
. La requête suivante utilise la clauseHAVING
pour sélectionner le total des ventes des années après 2003.,
Code language: SQL (Structured Query Language) (sql)
Essayer
La clause GROUP BY: MySQL vs standard SQL
le Standard SQL ne vous permet pas d’utiliser un alias dans le GROUP BY
clause, cependant, MySQL prend en charge cette.
par exemple, la requête suivante extrait l’année à partir de la date de la commande. Il utilise d’abord le year
comme un alias de l’expression YEAR(orderDate)
puis utilise la balise year
alias GROUP BY
clause., Cette requête n’est pas valide dans SQL standard.
Essayer
MySQL vous permet également de trier les groupes dans l’ordre croissant ou décroissant des ordres tandis que le standard SQL ne fonctionne pas. L’ordre par défaut est croissant., Par exemple, si vous voulez obtenir le nombre de commandes passées par statut et de tri de l’état dans l’ordre décroissant, vous pouvez utiliser la balise GROUP BY
clause DESC
comme la requête suivante:
Code language: SQL (Structured Query Language) (sql)
Essayer
Notez que nous avons utilisé DESC
dans le GROUP BY
clause de trier les status
dans l’ordre décroissant., Nous pourrions également spécifier explicitement ASC
dans la clause GROUP BY
pour trier les groupes par statut dans l’ordre croissant.
dans ce tutoriel, nous vous avons montré comment utiliser la clause MySQL GROUP BY
pour regrouper des lignes en sous-groupes en fonction des valeurs de colonnes ou d’expressions.
- ce tutoriel a Été utile?
- Ouinon