4 requêtes SQL à connaitre pour maitriser les filtres et agrégations
La maitrise de SQL passe par l’apprentissage et la mise en pratique de certains concepts clés. Pour pouvoir se créer des automatismes en ce qui concerne les filtres et d’agrégations, je vais te partager quelques fonctions à connaitre sur SQL.
1. HAVING
La clause HAVING, comme la clause WHERE, permet de filtrer les données. La particularité de HAVING réside dans le fait que l’on peut l’utiliser en même temps que des fonctions d’agrégation telles que SUM(), COUNT(), AVG(), MIN() et MAX().
La syntaxe est semblable à ceci :
Prenons cette table qui regroupe des transactions en fonction du pays.
Pour obtenir les pays dont le montant total des transactions est supérieur à 2500, nous pouvons utiliser cette requête :
On obtient ainsi :
2. CASE WHEN
CASE WHEN s’utilise lorsqu’on a plusieurs conditions à vérifier à la chaine pour créer une nouvelle colonne. La syntaxe est la suivante :
Dans cette requête, le CASE WHEN nous permet d’obtenir le montant total des transactions approuvées par mois et par pays.
Le résultat est le suivant :
3. CUBE
La clause CUBE est une extension de la clause GROUP BY. Elle s’utilise pour obtenir l’ensemble des combinaisons possibles des colonnes par lesquelles on regroupe.
Prenons un exemple pour clarifier cette notion.
En groupant ci-dessus par CUBE(country, state), on obtient les différentes combinaisons des valeurs de country et state.
Grâce à CUBE, nous avons l’exhaustivité des montants en fonction des combinaisons de country et state.
4. ROLLUP
La clause ROLLUP est semblable à la clause CUBE. C’est également une extension de la clause GROUP BY. La différence entre CUBE et ROLLUP est que cette dernière prend en compte l’ordre des colonnes de regroupement dans la selection des combinaisons possibles.
Dans l’exemple ci-dessus avec ROLLUP(country, state), l’ordre de priorité est country > state. Les combinaisons sont donc :
Nous obtenons ainsi l’ensemble des combinaisons possibles à l’exception des couples (null, approved) et (null, declined) qui sont exclus du fait de la hiérarchie country > state.
On utilise ROLLUP plutôt que CUBE dans le cas où il ne nous est pas utile d’avoir le montant des transactions par state.
Dans cette article, nous avons vu les clauses HAVING, CASE WHEN, CUBE et ROLLUP et dans quels cas les utiliser. A toi de t’exercer désormais en les utilisant suivant ton besoin.













