← SQL avancé
Leçon 9 / 9 — Chapitre 10: Mise en pratique : ressources humaines
Cas pratique final du module : tableau de bord RH par niveau
Ce tout dernier cas pratique du module combine CTE récursive et agrégation conditionnelle — une synthèse de plusieurs chapitres.
WITH RECURSIVE organigramme AS (
SELECT id, nom, manager_id, 0 AS niveau, salaire
FROM collaborateurs WHERE manager_id IS NULL
UNION ALL
SELECT c.id, c.nom, c.manager_id, o.niveau + 1, c.salaire
FROM collaborateurs c
JOIN organigramme o ON c.manager_id = o.id
)
SELECT niveau,
COUNT(*) AS nb_personnes,
SUM(CASE WHEN salaire >= 5000 THEN 1 ELSE 0 END) AS nb_direction
FROM organigramme
GROUP BY niveau
ORDER BY niveau;
Étape par étape :
- La CTE récursive calcule le niveau de chaque collaborateur, comme à la leçon 2.
GROUP BY niveauforme 3 groupes : niveau 0 (Fatou seule), niveau 1 (Moussa, Aicha), niveau 2 (Ibrahim, Khadija, Ousmane, Ramata).nb_directioncompte, dans chaque groupe, les salaires ≥ 5000 : niveau 0 → 1 (Fatou) ; niveau 1 → 2 (Moussa et Aicha, tous deux à 6000) ; niveau 2 → 0 (tous en dessous de 5000).
Ce dernier résultat montre que la totalité des postes « direction » (au sens salarial) se concentre aux niveaux 0 et 1 de la hiérarchie — aucun au niveau 2.
À retenir :
- Combiner une CTE récursive avec une agrégation conditionnelle relie la structure hiérarchique d'une organisation à une analyse chiffrée, en une seule requête.
- Ce module a parcouru, chapitre après chapitre, des fonctions isolées (texte, date, nombres) jusqu'à des techniques capables de répondre à des questions métier complètes comme celle-ci.
À vous de jouer : quelle est la valeur de nb_direction pour le niveau 2 ? Qu'est-ce que cela révèle sur la structure salariale de cette organisation ?
🔒
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès