SQL GROUP BY
发布时间:2026-09-22 | 浏览:2
La commande GROUP BY est utilisée en SQL pour grouper plusieurs résultats et utiliser une fonction de totaux sur un groupe de résultat. Sur une table qui contient toutes les ventes d’un magasin, il est par exemple possible de liste regrouper les ventes par clients identiques et d’obtenir le coût total des achats pour chaque client.
Syntaxe d’utilisation de GROUP BY
De façon générale, la commande GROUP BY s’utilise de la façon suivante
A noter : cette commande doit toujours s’utiliser après la commande WHERE et avant la commande HAVING.
Exemple d’utilisation
Prenons en considération une table « achat » qui résume les ventes d’une boutique :
Ce tableau contient une colonne qui sert d’identifiant pour chaque ligne, une autre qui contient le nom du client, le coût de la vente et la date d’achat.
Pour obtenir le coût total de chaque client en regroupant les commandes des mêmes clients, il faut utiliser la requête suivante :
La fonction SUM() permet d’additionner la valeur de chaque tarif pour un même client. Le résultat sera donc le suivant :
La manière simple de comprendre le GROUP BY c’est tout simplement d’assimiler qu’il va éviter de présenter plusieurs fois les mêmes lignes. C’est une méthode pour éviter les doublons.
Juste à titre informatif, voici ce qu’on obtient de la requête sans utiliser GROUP BY.
Utilisation d’autres fonctions de statistiques
Il existe plusieurs fonctions qui peuvent être utilisées pour manipuler plusieurs enregistrements, il s’agit des fonctions d’agrégations statistiques, les principales sont les suivantes :
AVG() pour calculer la moyenne d’un set de valeur. Permet de connaître le prix du panier moyen pour de chaque client
COUNT() pour compter le nombre de lignes concernées. Permet de savoir combien d’achats a été effectué par chaque client
MAX() pour récupérer la plus haute valeur. Pratique pour savoir l’achat le plus cher
MIN() pour récupérer la plus petite valeur. Utile par exemple pour connaître la date du premier achat d’un client
SUM() pour calculer la somme de plusieurs lignes. Permet par exemple de connaître le total de tous les achats d’un client
Ces petites fonctions se révèlent rapidement indispensable pour travailler sur des données.
Cours SQL SELECT SQL DISTINCT SQL SQL_NO_CACHE SQL WHERE SQL AND & OR SQL IN SQL BETWEEN SQL LIKE SQL Wildcards SQL IS NULL / IS NOT NULL SQL GROUP BY SQL WITH ROLLUP SQL HAVING SQL ORDER BY SQL AS (alias) SQL LIMIT SQL CASE SQL UNION SQL UNION ALL SQL INTERSECT SQL EXCEPT / MINUS SQL INSERT INTO SQL ON DUPLICATE KEY UPDATE SQL UPDATE SQL DELETE SQL MERGE SQL TRUNCATE TABLE SQL CREATE DATABASE SQL DROP DATABASE SQL CREATE TABLE SQL PRIMARY KEY SQL AUTO_INCREMENT SQL ALTER TABLE SQL DROP TABLE Jointure SQL SQL INNER JOIN SQL CROSS JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL JOIN SQL SELF JOIN SQL NATURAL JOIN SQL Sous-requête SQL EXISTS SQL ALL SQL ANY / SOME Index SQL SQL CREATE INDEX SQL EXPLAIN SQL OPTIMIZE Commentaires en SQL Exercices SQL
SQL SELECT SQL DISTINCT SQL SQL_NO_CACHE
SQL SQL_NO_CACHE
SQL WHERE SQL AND & OR SQL IN SQL BETWEEN SQL LIKE SQL Wildcards SQL IS NULL / IS NOT NULL
SQL LIKE SQL Wildcards
SQL IS NULL / IS NOT NULL
SQL GROUP BY SQL WITH ROLLUP
SQL WITH ROLLUP
SQL UNION SQL UNION ALL
SQL EXCEPT / MINUS
SQL INSERT INTO SQL ON DUPLICATE KEY UPDATE
SQL ON DUPLICATE KEY UPDATE
SQL TRUNCATE TABLE
SQL CREATE DATABASE
SQL DROP DATABASE
SQL CREATE TABLE SQL PRIMARY KEY SQL AUTO_INCREMENT
SQL PRIMARY KEY
SQL AUTO_INCREMENT
SQL ALTER TABLE
Jointure SQL SQL INNER JOIN SQL CROSS JOIN SQL LEFT JOIN SQL RIGHT JOIN SQL FULL JOIN SQL SELF JOIN SQL NATURAL JOIN
SQL NATURAL JOIN
SQL Sous-requête SQL EXISTS SQL ALL SQL ANY / SOME
Index SQL SQL CREATE INDEX
SQL CREATE INDEX
Commentaires en SQL
Fonctions SQL Fonctions d’agrégation SQL AVG() SQL COUNT() SQL MAX() SQL MIN() SQL SUM() Fonctions de chaînes de caractères SQL CONCAT() SQL LENGTH() SQL REPLACE() SQL SOUNDEX() SQL SUBSTRING() SQL LEFT() SQL RIGHT() SQL REVERSE() SQL TRIM() SQL LTRIM() SQL RTRIM() SQL LPAD() SQL UPPER() SQL LOWER() SQL UCASE() SQL LCASE() SQL LOCATE() SQL INSTR() Fonctions mathématiques / numérique SQL RAND() SQL ROUND() Fonctions de dates et d’heures SQL DATE_FORMAT() SQL DATEDIFF() SQL DAYOFWEEK() SQL MONTH() SQL NOW() SQL SEC_TO_TIME() SQL TIMEDIFF() SQL TIMESTAMP() SQL YEAR() Fonctions de chiffrements SQL MD5() SQL CAST() SQL CONVERT() (MySQL et SQL Server) SQL CONVERT() (PostgreSQL et Oracle) SQL ISNULL() SQL GROUP_CONCAT() SQL VERSION()
Fonctions d’agrégation SQL AVG() SQL COUNT() SQL MAX() SQL MIN() SQL SUM()
Fonctions de chaînes de caractères SQL CONCAT() SQL LENGTH() SQL REPLACE() SQL SOUNDEX() SQL SUBSTRING() SQL LEFT() SQL RIGHT() SQL REVERSE() SQL TRIM() SQL LTRIM() SQL RTRIM() SQL LPAD() SQL UPPER() SQL LOWER() SQL UCASE() SQL LCASE() SQL LOCATE() SQL INSTR()
SQL SUBSTRING()
Fonctions mathématiques / numérique SQL RAND() SQL ROUND()
Fonctions de dates et d’heures SQL DATE_FORMAT() SQL DATEDIFF() SQL DAYOFWEEK() SQL MONTH() SQL NOW() SQL SEC_TO_TIME() SQL TIMEDIFF() SQL TIMESTAMP() SQL YEAR()
SQL DATE_FORMAT()
SQL DAYOFWEEK()
SQL SEC_TO_TIME()
SQL TIMESTAMP()
Fonctions de chiffrements SQL MD5()
SQL CONVERT() (MySQL et SQL Server)
SQL CONVERT() (PostgreSQL et Oracle)
SQL GROUP_CONCAT()
Procédure stockée (CREATE PROCEDURE)
Système de Gestion de Base de Données MySQL PostgreSQL MariaDB Oracle Database Microsoft SQL Server SQLite Access OpenOffice.org Base Cassandra Redis MongoDB Neo4j
Oracle Database
Microsoft SQL Server
OpenOffice.org Base
Moteurs de stockage