PaliSkill
SQL — Fonctions de fenêtrage

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 CASE dans 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