La cadena de mando
- O(2ⁿ) · Legendaria
- Plan completo
- SQL
- recursión
- textos
Enunciado
Llega alguien nuevo a recursos humanos y pide el organigrama. Nadie lo ha dibujado nunca: lo único que hay es empleados, donde cada persona guarda quién es su jefe y nada más.
Muestra de cada persona su nombre, su nivel y su cadena de mando, en ese orden. El nivel es cuántos jefes tiene por encima: quien no tiene ninguno, como Carmen, está en el 0. La cadena va en una sola casilla, desde lo más alto hasta la propia persona, con > entre nombre y nombre: la de Samuel es Carmen > Paula > Samuel, y la de Carmen, Carmen.
Ordena por la cadena, como texto que es: cada quien queda debajo de su jefe, y el organigrama sale dibujado.
Lo que tiene que devolver
Estas filas, en este orden
| nombre | nivel | cadena |
|---|---|---|
| Carmen | 0 | Carmen |
| Greta | 1 | Carmen > Greta |
| Marco | 1 | Carmen > Marco |
| Nadia | 2 | Carmen > Marco > Nadia |
| Rita | 2 | Carmen > Marco > Rita |
| Paula | 1 | Carmen > Paula |
| Fabio | 2 | Carmen > Paula > Fabio |
| Lidia | 2 | Carmen > Paula > Lidia |
| Samuel | 2 | Carmen > Paula > Samuel |
Es lo que sale con los datos de la base de práctica del reto. Los nombres de las columnas no cuentan, las tuyas pueden llamarse como quieras: cuenta cuántas son y en qué orden van. Además de esta, el reto tiene pruebas ocultas con otros datos, que se revelan al enviar tu solución.
Empiezas con esto
SQL
SELECT e.nombre, j.nombre AS jefe
FROM empleados e
LEFT JOIN empleados j
ON e.jefe_id = j.idSe abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.
Más retos de O(2ⁿ)
- La gente de su genteSQL · recursión · agrupar
- La tienda en rachaSQL · ventanas · fechas
- Ni uno de más, ni uno de menosSQL · ventanas · operaciones
- ¿Quién me presta los apuntes?SQL · subconsultas · uniones · agrupar
- El de inviernosSQL · recursión · textos · ventanas
- El estante más vacíoSQL · ventanas · fechas · conjuntos