Ce cours sur le SQL a pour but de donner des bases pour quiconque voudrait avoir une vision globale sur ce sujet. Il permet d’avoir une vision globale sur comment lire une base de données et faire des requêtes. Cet article est le quatrième d’une série de 5 articles.

Ce cours est la suite de la partie 3, il va présenter les agrégations en SQL. Si vous débutez totalement en SQL, commencez par la partie 1.

GROUP BY

La fonction GROUP BY permet de grouper plusieurs résultats. Si on dispose par exemple d’une base de données de transactions. On va pouvoir calculer la somme des ventes par client, le client qui achète le plus, … La commande GROUP BY s’écrit après la commande WHERE mais avant la commande LIMIT. Voici un exemple de requête utilisant GROUP BY : 

SELECT 
	colonneA, fonction(colonneB) 
FROM 
	table
GROUP BY 
	colonneA

Liste des principales fonctions d’agrégation

  • COUNT : Permet de compter le nombre de lignes
  • SUM : Permet de sommer une liste de termes 
  • AVG : Permet de prendre la moyenne arithmétique d’une liste de termes. 
  • MAX : Permet de prendre le plus grand terme parmi une liste de termes
  • MIN : Permet de prendre le plus petit terme parmi une liste de termes

L’opérateur COUNT

On veut compter le nombre de personnes pour chaque prénom de la table de la partie 1. Pour cela, on utilise la fonction COUNT, dont voici la requête :

SELECT
	prenom, 
	count(prenom) AS nb_prenom
FROM
	personne
GROUP BY
	prenom

Voici le résultat de la requête SQL.

prenomnb_prenom
Pierre1
Paul1
Baptiste2
Jean1
Jacques1

L’opérateur SUM

On veut compter le salaire total des personnes de notre base. Pour cela, on utilise la fonction SUM

SELECT
	sum(salaire) AS salaire_total
FROM
	revenue

Et voici ce le résultat obtenu :

salaire_total
257 000

L’opérateur MAX

On veut compter le salaire maximum des personnes de notre base. Pour cela, on utilise la fonction MAX

SELECT
	max(salaire) AS salaire_max
FROM
	revenue

On obtient alors :

salaire_max
70 000

A noter : La fonction AS est très utile avec les fonctions d’agrégation

L’opérateur WITH ROLLUP

La fonction WITH ROLLUP permet de calculer avec des fonctions plusieurs résultats mais sans grouper les lignes. Voici un exemple de requête utilisant GROUP BY WITH ROLLUP :

SELECT 
	colonneA, fonction(colonneB) 
FROM 
	table
GROUP BY 
	colonneA
WITH ROLLUP

Exemple

On veut compter le nombre de personnes pour chaque nom et prénom mais garder tous les noms prénoms. Pour cela, on utilise la fonction WITH ROLLUP avec cette requête :

SELECT
	nom,
	prenom, 
	count(prenom) AS nb_prenom
FROM
	personne
GROUP BY
	prenom 
WITH ROLLUP

Ce qui nous donne le résultat suivant :

nomprenomnb_prenom
DupontBaptiste2
DurandJean1
DuchenePierre1
DupontPaul1
DurandJacques1
GirardBaptiste2

Pas d’entraînement pour cette partie, il reviendra dans la partie 5 !

Et voilà pour cette partie 4 sur les fonctions d’agrégation en SQL. Au prochain article : les fonction d’agrégation !

2 Comments

Laisser un commentaire