El cuaderno del mostrador
- O(n log n) · Difícil
- Plan completo
- SQL
- conjuntos
- ordenar
- nulos
Enunciado
En el mostrador de la biblioteca hay un cuaderno donde cada salida y cada vuelta de un libro ocupa un renglón. Con el año nuevo se empezó hoja, y toca pasarla en limpio: todo lo que se ha movido desde el 1 de enero de 2026.
Muestra el día, lo que pasó (sale o vuelve) y el título del libro, en ese orden. Un libro que salió en diciembre y volvió en enero deja en esta hoja solo el renglón de su vuelta, y el que sigue fuera todavía no tiene renglón de vuelta.
Ordena por día. Dentro del mismo día van primero las vueltas, porque un libro tiene que volver para salir otra vez, y después las salidas. Si todavía empatan, por título.
Lo que tiene que devolver
Estas filas, en este orden
| dia | movimiento | titulo |
|---|---|---|
| 2026-01-02 | sale | El faro |
| 2026-01-03 | sale | La casa azul |
| 2026-01-04 | vuelve | Mapas de sal |
| 2026-01-05 | vuelve | La casa azul |
| 2026-01-08 | sale | Noche larga |
| 2026-01-09 | vuelve | El faro |
| 2026-01-10 | sale | El faro |
| 2026-01-10 | sale | Tres inviernos |
| 2026-01-12 | sale | El tren del sur |
| 2026-01-13 | sale | La casa azul |
| 2026-01-14 | vuelve | Tres inviernos |
| 2026-01-15 | vuelve | Noche larga |
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 p.prestado AS dia,
'sale' AS movimiento,
l.titulo
FROM prestamos p
JOIN libros l
ON p.libro_id = l.id
ORDER BY dia;Se 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(n log n)
- Gastó cero, pero saleSQL · uniones · nulos · agrupar
- La boleta en una filaSQL · uniones · agrupar · condicionales
- La lista del pasilloSQL · uniones · agrupar · ordenar
- La mesa de novedadesSQL · subconsultas · uniones
- Lo que Lima no ha probadoSQL · subconsultas · uniones
- Lo que sale y lo que noSQL · uniones · agrupar