Dos a la vez
- O(n log n) · Difícil
- Plan completo
- SQL
- uniones
- nulos
- comparaciones
Enunciado
La bibliotecaria sospecha que hay socios que se llevan un libro cuando todavía tienen otro en casa. No está prohibido, pero quiere saber quién y con qué libros.
Un socio tenía un libro en casa el día en que se llevó otro si lo había sacado un día anterior y aún no lo había devuelto: o sigue fuera, o volvió después de ese día. Devolver uno y llevarse otro en la misma visita no cuenta.
Muestra el socio, el título del libro que ya tenía, el título del que se llevó y el día en que se lo llevó, en ese orden.
Lo que tiene que devolver
Estas filas, en cualquier orden
| socio | ya_tenia | se_llevo | dia |
|---|---|---|---|
| Ana | Tres inviernos | La casa azul | 2026-01-13 |
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.socio, p.libro_id,
p.prestado, p.devuelto
FROM prestamos p
ORDER BY p.socio, p.prestado;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)
- El cuaderno del mostradorSQL · conjuntos · ordenar · nulos
- 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