Este é um exemplo canônico de COM RECURSIVE
Tente isto:
with recursive subordinates as
(select
employeid,
e.managerid,
e.managerid as leader
from employes e
where e.managerid in(select * from leaders) -- non recursive term
union
select
e.employeid,
e.managerid,
a.managerid as leader
from employes e
join subordinates a on a.employeid = e.managerid -- recursive term
) select * from subordinates
Conforme descrito na documentação:
A COM RECURSCIVA é sempre composto por
- Um termo não recursivo
- UNIÃO ou UNION ALL
- Um termo recursivo, o único que pode se referir à saída da consulta
A recusa termina quando a iteração anterior não tem saída.