Cada cuánto vuelven
- O(n²) · Muy difícil
- Plan completo
- SQL
- ventanas
- fechas
- agrupar
Enunciado
Hay clientes que vuelven al día siguiente y otros que tardan una semana. La tienda quiere saberlo de cada uno: cuántas veces volvió y cuántos días pasan, en promedio, entre una visita y la siguiente.
Una visita es un día con pedidos: dos pedidos del mismo día son una sola. Cuentan los pedidos con fecha hasta hoy, 15 de enero de 2026. El del día 20 está mal tecleado, y con una fecha equivocada no se cuentan días: queda fuera, aunque a Luis le quite una vuelta.
Muestra el nombre, las veces que volvió y el promedio de días, redondeado a 1 decimal, en ese orden. Primero quien tarda menos en volver y, si empatan, por nombre. Quien solo ha venido un día no sale.
Lo que tiene que devolver
Estas filas, en este orden
| nombre | vueltas | cada_cuanto |
|---|---|---|
| Diego | 1 | 1 |
| Valeria | 1 | 2 |
| Ana | 2 | 4.5 |
| Luis | 1 | 7 |
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,
LAG(fecha) OVER (
PARTITION BY cliente_id
ORDER BY fecha, id
) AS anterior
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²)
- 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
- Empezar por abajoSQL · modificar datos · subconsultas
- Empezaste con un TecladoSQL · ventanas · uniones