Leçon 2 / 9 — Chapitre 6: Combiner fenêtres, CASE et sous-requêtes
Étiqueter un rang avec CASE
Une fonction de fenêtre peut être utilisée directement à l'intérieur d'un CASE, dans la liste SELECT — ce qui permet de transformer un rang numérique en étiquette lisible.
SELECT nom, equipe, anciennete,
CASE
WHEN RANK() OVER (PARTITION BY equipe ORDER BY anciennete DESC) = 1 THEN $q2$senior de l'equipe$q2$
ELSE $q2$autre$q2$
END AS statut
FROM employes;
Dans l'équipe support, David et Farid (7 ans chacun) obtiennent tous deux le rang 1 : leur statut est 'senior de l'equipe'. Elise, rang 3, obtient 'autre'. Dans l'équipe ventes, seule Amara (rang 1) obtient le statut senior ; Baptiste et Chloé (rang 2 ex-aequo) obtiennent 'autre'.
À retenir :
- Un
CASEdans la liste SELECT peut utiliser directement le résultat d'une fonction de fenêtre dans ses conditions WHEN — contrairement à un WHERE, qui ne peut pas référencer une fonction de fenêtre sans passer par une sous-requête. - Cette combinaison transforme un résultat numérique (un rang) en une catégorie métier lisible, sans avoir besoin d'une étape supplémentaire.
À vous de jouer : quel est le statut de Baptiste (rang 2 dans l'équipe ventes) avec cette requête ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 72 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès