Saltar al contenido

Cada cuánto vuelven

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

nombrevueltascada_cuanto
Diego11
Valeria12
Ana24.5
Luis17

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;
Resolver este reto

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²)

Ver todos los retos →