Saltar al contenido

Empezaste con un Teclado

Enunciado

La tienda quiere escribirle a cada cliente algo suyo: «Empezaste con un Teclado. Lo último que te llevaste fue un Ratón».

Muestra, de cada cliente que ha pedido algo, su nombre, el producto de su primer pedido y el del último, en ese orden y por orden alfabético de cliente. Quien solo ha pedido una vez lleva el mismo producto en las dos columnas.

Los pedidos de un cliente van por fecha y, dentro del mismo día, por número de pedido. El que tiene fecha del día 20 está mal tecleado, pero con el 15 o con el 20 es lo último que pidió Luis, y cuenta.

Lo que tiene que devolver

Estas filas, en este orden

clienteprimeroultimo
AnaTecladoRatón
DiegoPortátilAudífonos
LuisRatónTableta
MateoCableCable
SofíaAudífonosAudífonos
ValeriaTecladoCable

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.cliente_id,
  pr.nombre AS producto,
  ROW_NUMBER() OVER (
    PARTITION BY p.cliente_id
    ORDER BY p.fecha, p.id
  ) AS num
FROM pedidos p
JOIN productos pr
  ON p.producto_id = pr.id;
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 →