Enero fuera de casa
- O(n²) · Muy difícil
- Plan completo
- SQL
- fechas
- nulos
- agrupar
Enunciado
La bibliotecaria quiere saber qué libros casi no pisan el estante: ¿cuántos días de este enero ha pasado fuera cada uno?
Los días se cuentan restando fechas: el libro que sale el 3 y vuelve el 5 estuvo 2 días fuera. El que no ha vuelto cuenta hasta hoy, 15 de enero de 2026. Si un libro salió más de una vez, sus días se suman. Y de lo que pasó antes del 1 de enero no cuenta nada: de un préstamo que venía de diciembre, solo los días desde el 1.
Muestra el título y los días, en ese orden, con todos los libros: el que no ha salido en enero lleva un 0. Arriba el que más días ha pasado fuera y, si empatan, por título. Hoy se puede escribir '2026-01-15' o DATE('now').
Lo que tiene que devolver
Estas filas, en este orden
| titulo | dias |
|---|---|
| El faro | 12 |
| Noche larga | 7 |
| La casa azul | 4 |
| Tres inviernos | 4 |
| El tren del sur | 3 |
| Mapas de sal | 3 |
| Cuentos breves | 0 |
| Hojas sueltas | 0 |
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 libro_id, prestado, devuelto,
JULIANDAY(devuelto)
- JULIANDAY(prestado) AS dias
FROM prestamos;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²)
- Faro, ElSQL · textos · condicionales · ordenar
- Hoy se vendió como nuncaSQL · ventanas · agrupar · subconsultas
- La biblioteca olvidaSQL · modificar datos · subconsultas
- La caja, día a díaSQL · ventanas · agrupar · condicionales
- La semana del 4SQL · fechas · agrupar · textos
- Llega el miércolesSQL · fechas · condicionales