GROUP BY : Tout savoir de cette requête

-
2
 m de lecture
-

L’une des commandes SQL les plus utiles pour le Data Analyst est GROUP BY. Elle autorise, en toute simplicité, la génération de statistiques avancées à partir de catégories. Autant le dire, c’est une des 10 commandes que vous utiliserez le plus, donc autant savoir de quoi il s'agit.

Les atouts de SQL ne sont plus à démontrer. Ce langage offre un niveau d’abstraction hors pair pour analyser de vastes volumes d’information. Quel que soit le logiciel de base de données utilisé (MySQL, Ingres, Oracle Database, Microsoft SQL Server, PostgreSQL, SQLite, Firebird…), le data analyst sait qu’il obtiendra le résultat désiré sans avoir à en programmer la logique précise.

Comment regrouper les informations d’une base de données ?

S’il est une commande particulièrement importante et fort appréciable, c’est GROUP BY. Elle regroupe des informations d’une base selon une colonne particulière, à partir de laquelle, il sera possible d’obtenir des informations statistiques : somme, maximum, minimum, moyenne, etc.

Pour mieux appréhender ce concept, le plus simple est de partir d’un exemple. Voici un extrait d’une table appelée Personnel.

Nom Service Salaire
Paul Finances 3 000
Ray Ventes 2 500
Julia Finances 3 200
Dan Marketing 4 300
Josie Ventes 2 200
Donna Finances 2 700

Si nous voulions obtenir la somme des salaires par service, il suffirait d’utiliser une séquence telle que celle-ci :

SELECT Service, SUM(Salaire)

FROM Personnel

GROUP BY Service

ORDER BY Service;

Dans cet exemple, nous regroupons la table selon la colonne Service et demandons à obtenir la somme des salaires pour chacun d’entre eux.

Nous obtiendrions en réponse – sur l’échantillon indiqué plus haut :

Finances 8 900
Marketing 4 300
Ventes 4 700

Comment utiliser la clause HAVING BY ?

HAVING BY complète la commande GROUP BY en ouvrant la possibilité d’indiquer une condition. Ainsi, dans l’exemple ci-dessous, nous souhaitons afficher la moyenne des salaires (la fonction AVG) mais uniquement si cette moyenne est supérieure à 2500 :

SELECT Service, AVG(Salaire)

FROM Personnel

GROUP BY Service

HAVING AVG(Salaire) > 2500

ORDER BY Service;

Nous obtenons en résultat :

Finances 2 967
Marketing 4 300

Et voilà ! C’est aussi simple que cela. La facilité avec laquelle de telles opérations sont mises en œuvre témoigne des qualités du langage SQL.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?