El tercer sello
- O(n²) · Muy difícil
- Plan completo
- SQL
- ventanas
- uniones
- fechas
Enunciado
La tienda estrena una tarjeta de sellos: un sello por pedido y, con el tercero, un regalo. Como los pedidos de antes también valen, ya hay clientes con la tarjeta llena. El dueño quiere saber con qué pedido la llenó cada uno y cuánto tardó.
Los pedidos de un cliente van por fecha y, dentro del mismo día, por número de pedido. Muestra el nombre, el producto de su tercer pedido, la fecha de ese pedido y los días que pasaron desde el primero, en ese orden. Arriba quien la llenó en menos días y, si empatan, por nombre. Quien no llega a tres pedidos no sale.
El pedido con fecha del día 20 es el tercero de Luis y vale su sello: mientras nadie la corrija, sale con la fecha que tiene apuntada.
Lo que tiene que devolver
Estas filas, en este orden
| nombre | producto | fecha | dias |
|---|---|---|---|
| Ana | Ratón | 2026-01-12 | 9 |
| Luis | Tableta | 2026-01-20 | 16 |
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 cliente_id, fecha,
ROW_NUMBER() OVER (
ORDER BY fecha, id
) AS num
FROM pedidos;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²)
- Empezar por abajoSQL · modificar datos · subconsultas
- Empezaste con un TecladoSQL · ventanas · uniones
- Enero fuera de casaSQL · fechas · nulos · agrupar
- Faro, ElSQL · textos · condicionales · ordenar
- Hoy se vendió como nuncaSQL · ventanas · agrupar · subconsultas
- La biblioteca olvidaSQL · modificar datos · subconsultas