Este es un ejemplo canónico de CON RECURSIVO
Prueba esto:
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
Como se describe en la documentación:
A CON RECURSCIVO siempre está compuesto por
- Un término no recursivo
- UNIÓN o UNIR TODOS
- Un término recursivo, el único que puede referirse al resultado de la consulta
La recusión finaliza cuando la iteración anterior no tiene salida.