logo oujood
🔍

Comment regrouper des données en SQL avec la clause GROUP BY

OUJOOD.COM

Tutoriel sur l'instruction SQL GROUP BY: Introduction

La clause GROUP BY est une instruction SQL qui permet de regrouper des lignes de données en fonction d'une ou plusieurs colonnes. Elle est souvent utilisée avec des fonctions d'agrégation pour calculer des statistiques sur les groupes de lignes.

Définition et utilisation

La clause GROUP BY est utilisée avec l'instruction SELECT pour regrouper les lignes de données. Elle est placée aprÚs la clause SELECT et avant la clause ORDER BY, si elle est utilisée.

 
SELECT [colonnes]
FROM [table]
GROUP BY [colonnes]
[HAVING [condition]]

La clause GROUP BY peut ĂȘtre utilisĂ©e pour regrouper des lignes de donnĂ©es en fonction d'une ou plusieurs colonnes. Par exemple, la requĂȘte suivante regroupe les lignes de donnĂ©es de la table produits en fonction du nom du produit :

Exemple :     📋 Copier le code

SELECT nom, COUNT(*) AS nombre_produits
FROM produits
GROUP BY nom

Syntaxes

Il existe plusieurs syntaxes pour la clause GROUP BY.

  • Regroupement par une colonne

    La syntaxe la plus simple est de regrouper les lignes de donnĂ©es par une seule colonne. Par exemple, la requĂȘte suivante regroupe les lignes de donnĂ©es de la table produits en fonction du nom du produit :

    Exemple :     📋 Copier le code

    SELECT nom, COUNT(*) AS nombre_produits
    FROM produits
    GROUP BY nom
    
  • Regroupement par plusieurs colonnes

    La clause GROUP BY peut Ă©galement ĂȘtre utilisĂ©e pour regrouper les lignes de donnĂ©es par plusieurs colonnes. Par exemple, la requĂȘte suivante regroupe les lignes de donnĂ©es de la table produits en fonction du nom du produit et de la catĂ©gorie du produit :

    Exemple :     📋 Copier le code

    SELECT nom, catégorie, COUNT(*) AS nombre_produits
    FROM produits
    GROUP BY nom, catégorie
    
  • Regroupement par une expression

    La clause GROUP BY peut Ă©galement ĂȘtre utilisĂ©e pour regrouper les lignes de donnĂ©es par une expression. Par exemple, la requĂȘte suivante regroupe les lignes de donnĂ©es de la table produits en fonction du prix des produits :

    Exemple :     📋 Copier le code

    SELECT prix, COUNT(*) AS nombre_produits
    FROM produits
    GROUP BY prix
    
  • Regroupement par une fonction d'agrĂ©gation

    La clause GROUP BY peut Ă©galement ĂȘtre utilisĂ©e pour regrouper les lignes de donnĂ©es par une fonction d'agrĂ©gation. Par exemple, la requĂȘte suivante regroupe les lignes de donnĂ©es de la table produits en fonction du prix moyen des produits :

    Exemple :     📋 Copier le code

    SELECT AVG(prix) AS prix_moyen
    FROM produits
    GROUP BY prix
    

Exemples pratiques d'utilisation

Voici quelques exemples pratiques d'utilisation de la clause GROUP BY :

  • Calculer le nombre de clients par pays

    Exemple :     📋 Copier le code

    SELECT pays, COUNT(*) AS nombre_clients
    FROM clients
    GROUP BY pays
    
  • Calculer le montant total des ventes par catĂ©gorie de produit

    Exemple :     📋 Copier le code

    SELECT catégorie, SUM(prix) AS montant_total_des_ventes
    FROM produits
    GROUP BY catégorie
    
  • Calculer la moyenne des notes par Ă©tudiant

    Exemple :     📋 Copier le code

    SELECT étudiant, AVG(note) AS moyenne_des_notes
    FROM notes
    GROUP BY étudiant
    

Astuces et conseils d'utilisation

Voici quelques astuces et conseils d'utilisation de la clause GROUP BY :

  • La clause GROUP BY ne modifie pas les donnĂ©es de la table source. Elle ne fait que regrouper les lignes de donnĂ©es et calculer des statistiques sur les groupes.
  • La clause GROUP BY ne peut pas ĂȘtre utilisĂ©e avec la clause DISTINCT.
  • La clause GROUP BY peut ĂȘtre utilisĂ©e avec la clause HAVING pour filtrer les groupes de lignes.
  • La clause GROUP BY peut ĂȘtre utilisĂ©e avec des fonctions d'agrĂ©gation, telles que COUNT(), SUM(), AVG(), MIN et MAX .

Conclusion

La clause GROUP BY est une instruction SQL puissante qui permet de regrouper des lignes de données en fonction d'une ou plusieurs colonnes. Elle est souvent utilisée avec des fonctions d'agrégation pour calculer des statistiques sur les groupes de lignes.