Hierarchical Queries (Finding Manager Trees) 🌲

WITH RECURSIVE employee_tree AS (
    SELECT employee_id, manager_id, 1 AS level
    FROM employees
    WHERE manager_id IS NULL
    UNION ALL
    SELECT e.employee_id, e.manager_id, et.level + 1
    FROM employees e
    JOIN employee_tree et
    ON e.manager_id = et.employee_id
)
SELECT * FROM employee_tree;


  • Use a recursive CTE to traverse the hierarchy.
  • The base case includes top-level managers, and recursion builds levels.