MySQL GROUP BY (Français)

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller à la barre d’outils