GROUP BY
GROUP BY est une clause SQL utilisée pour regrouper les lignes d'un résultat de requête en fonction des valeurs d'une ou plusieurs colonnes. Cette clause est généralement utilisée en conjonction avec des fonctions d'agrégation telles que SUM, COUNT, AVG, MAX, ou MIN pour effectuer des calculs sur les groupes de lignes regroupées. Le résultat renvoie un ensemble de lignes regroupées qui résume les données de manière agrégée.
Exemple
Supposons que vous ayez une table nommée commandes contenant des informations sur les ventes de produits, avec des colonnes telles que produit, quantite et prix_unitaire. Vous souhaitez savoir combien de chaque produit a été vendu et quel est le montant total des ventes pour chaque produit. Vous pouvez utiliser GROUP BY pour effectuer cette agrégation.
Exemple de données dans la table commandes :
Exemple de données dans la table commandes :
+-------+----------+--------------+ | produit | quantite | prix_unitaire | +-------+----------+--------------+ | A | 5 | 10.00 | | B | 3 | 15.00 | | A | 2 | 10.00 | | C | 4 | 20.00 | | B | 2 | 15.00 | +-------+----------+--------------+
Vous pouvez utiliser la requête suivante avec GROUP BY pour regrouper les données par produit et obtenir le total des ventes de chaque produit :
SELECT produit, SUM(quantite) AS total_quantite, SUM(quantite * prix_unitaire) AS total_ventes
FROM commandes
GROUP BY produit;
+-------+----------------+-------------+ | produit | total_quantite | total_ventes | +-------+----------------+-------------+ | A | 7 | 70.00 | | B | 5 | 75.00 | | C | 4 | 80.00 | +-------+----------------+-------------+
Explication :
La clause GROUP BY est utilisée pour regrouper les lignes par la colonne produit.
Les fonctions d'agrégation SUM sont utilisées pour calculer la somme des quantités vendues (total_quantite) et la somme totale des ventes (total_ventes) pour chaque produit.
Le résultat renvoie une ligne pour chaque produit avec les totaux correspondants.
En utilisant GROUP BY, vous pouvez résumer et agréger les données de manière significative pour obtenir des informations utiles à partir d'un grand ensemble de données.
Les fonctions d'agrégation SUM sont utilisées pour calculer la somme des quantités vendues (total_quantite) et la somme totale des ventes (total_ventes) pour chaque produit.
Le résultat renvoie une ligne pour chaque produit avec les totaux correspondants.
En utilisant GROUP BY, vous pouvez résumer et agréger les données de manière significative pour obtenir des informations utiles à partir d'un grand ensemble de données.
Questions & répones
(SELECT avec GROUP BY): Sélectionnez le nombre de produits par marque.
(SELECT avec GROUP BY): Sélectionnez le montant total des ventes par client.
(SELECT avec GROUP BY): Sélectionnez la quantité totale en stock par catégorie de produits.
(SELECT avec WHERE et GROUP BY): Sélectionnez le montant total des ventes pour un client spécifique (ID 2) effectuées après une date donnée (par exemple, '2023-01-01').
(SELECT avec WHERE et GROUP BY): Sélectionnez le produit le plus vendu (en termes de quantité vendue) dans chaque catégorie de produits.
(SELECT avec WHERE et GROUP BY): Sélectionnez le client avec le montant total d'achats le plus élevé.
(SELECT avec WHERE et GROUP BY): Sélectionnez le produit le moins cher dans chaque catégorie de produits.
(SELECT avec WHERE et GROUP BY): Sélectionnez la quantité totale vendue de chaque produit pour une date spécifique (par exemple, '2023-04-15').
(SELECT avec WHERE et GROUP BY): Sélectionnez le nombre de clients par ville.
(SELECT avec WHERE et GROUP BY): Sélectionnez la date de vente la plus récente pour chaque client.
(SELECT avec WHERE et GROUP BY): Sélectionnez la quantité totale en stock par catégorie de produits, mais uniquement pour les catégories dont la quantité totale en stock est supérieure à 100.
(SELECT avec WHERE et GROUP BY): Sélectionnez le produit le plus cher dans chaque catégorie de produits.
Exemple 2
Supposons un schéma de base de données avec trois tables : "étudiants", "cours", et "notes". Les colonnes de ces tables sont les suivantes :
Exemple 1 : Calculer la moyenne des notes pour chaque étudiant.
Résultat :
Exemple 2 : Obtenir la liste des étudiants ayant obtenu une note supérieure à 90 dans au moins un cours.
Résultat :
Exemple 3 : Trouver le cours avec la note la plus élevée.
Résultat :
Exemple 4 : Calculer la somme des notes de tous les étudiants dans un cours donné.
Résultat :
Exemple 5 : Compter le nombre d'étudiants ayant des notes dans chaque cours.
Résultat :
Exemple 6 : Obtenir la note minimale et maximale de chaque étudiant.
Résultat :
Exemple 7 : Trouver le cours avec la note minimale et maximale.
Résultat :
Exemple 8 : Calculer la moyenne des notes pour chaque cours.
Résultat :
Exemple 9 : Compter le nombre d'étudiants ayant des notes supérieures ou égales à 90 dans chaque cours.
Résultat :
Exemple 10 : Obtenir la liste des étudiants ayant obtenu la note minimale dans au moins un cours.
Résultat :