Un renglón para cada día
- O(n²) · Muy difícil
- Plan completo
- SQL
- recursión
- fechas
- ventanas
Enunciado
El cuaderno de la caja salta del 4 al 9 de enero como si nada: un día sin pedidos no deja ninguna fila en pedidos, y lo que no tiene fila no sale. El dueño quiere la hoja de los días ya cerrados, del 3 de enero al 14, que fue ayer: doce renglones, también los de los días en que no entró nada. Muestra de cada día la fecha, el dinero pedido ese día (el precio de cada producto por las unidades pedidas) y lo que la tienda llevaba pedido desde el día 3 al cerrar ese día, en ese orden, con los dos importes redondeados a 2 decimales y el día más reciente arriba. Un día sin pedidos lleva un 0 y no mueve lo que se llevaba: el renglón del 5 de enero dice 0 y 379.5. Hoy, 15 de enero, todavía no ha cerrado: ni los pedidos de hoy ni el que tiene fecha del día 20 encuentran renglón en esta hoja.
Lo que tiene que devolver
Estas filas, en este orden
| dia | del_dia | acumulado |
|---|---|---|
| 2026-01-14 | 899 | 1790.15 |
| 2026-01-13 | 0 | 891.15 |
| 2026-01-12 | 35.65 | 891.15 |
| 2026-01-11 | 378 | 855.5 |
| 2026-01-10 | 45.5 | 477.5 |
| 2026-01-09 | 52.5 | 432 |
| 2026-01-08 | 0 | 379.5 |
| 2026-01-07 | 0 | 379.5 |
| 2026-01-06 | 0 | 379.5 |
| 2026-01-05 | 0 | 379.5 |
| 2026-01-04 | 288.5 | 379.5 |
| 2026-01-03 | 91 | 91 |
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.fecha,
pr.precio * p.cantidad AS dinero
FROM pedidos p
JOIN productos pr
ON p.producto_id = pr.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(n²)
- ¿Qué día cerramos?SQL · fechas · agrupar · condicionales
- Cada cuánto vuelvenSQL · ventanas · fechas · agrupar
- De cada 100 de nóminaSQL · ventanas · decimales
- El escalón de arribaSQL · ventanas · subconsultas
- El primero con el últimoSQL · ventanas · uniones · agrupar
- El tercer selloSQL · ventanas · uniones · fechas