PaliSkill
SQL avancé

Leçon 1 / 9 — Chapitre 10: Mise en pratique : ressources humaines

La table collaborateurs

Dernier scénario du module : un organigramme d'entreprise, sur une seule table hiérarchique.

collaborateurs
id | nom      | poste                    | manager_id | salaire
1  | Fatou     | Directrice générale      | (NULL)     | 8000
2  | Moussa    | Directeur technique      | 1          | 6000
3  | Aicha     | Directrice commerciale   | 1          | 6000
4  | Ibrahim   | Développeur senior       | 2          | 4000
5  | Khadija   | Développeuse             | 2          | 3000
6  | Ousmane   | Commercial senior        | 3          | 3500
7  | Ramata    | Commerciale              | 3          | 2800

manager_id référence id dans cette même table : chaque collaborateur pointe vers son manager direct, sauf Fatou (manager_id NULL), au sommet de la hiérarchie. C'est exactement le type de structure — une table qui se référence elle-même — qui appelle une CTE récursive (chapitre 7) pour en explorer tous les niveaux.

Les salaires (salaire) de ce chapitre sont exprimés en dollars ($).

À retenir :

  • Une colonne comme manager_id, qui référence la clé primaire de sa propre table, encode une hiérarchie sans avoir besoin d'une table séparée par niveau.
  • Un collaborateur sans manager (manager_id NULL) est la racine de la hiérarchie.

À vous de jouer : combien de collaborateurs, sur les 7 existants, ont directement Fatou (id 1) comme manager ?

À vous de jouer

À faire

Voici la table collaborateurs :

collaborateurs (id, manager_id) : (1,NULL), (2,1), (3,1), (4,2), (5,2), (6,3), (7,3)

Combien de collaborateurs ont directement Fatou (id 1) comme manager ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un nombre.

À vous de jouer

À faire

Sur cette même table, combien de collaborateurs ont directement Moussa (id 2) comme manager ?

Testez cette requête dans un bac à sable SQL en ligne (SQLite Fiddle, W3Schools "Try SQL", ou tout autre) pour vérifier le résultat avant de répondre.

💡 Un nombre.

Quitter le module