Caras nuevas
- O(n log n) · Difícil
- Plan completo
- SQL
- subconsultas
- agrupar
- uniones
Enunciado
El dueño hojea el cuaderno de pedidos con una duda: ¿la tienda crece, o le compran siempre los mismos? Quiere ver, día por día, cuántos pedidos entraron y cuántos clientes pidieron ese día por primera vez en su vida. Muestra la fecha, los pedidos de ese día y las caras nuevas, en ese orden, con el día más reciente arriba. Un día en que solo pidieron conocidos sale con su 0. Y quien estrena la tienda con dos pedidos el mismo día es una sola cara nueva.
El pedido con fecha del día 20 tiene su renglón, con la fecha tal como está apuntada. Es de Luis, que ya había pedido el día 4: mal tecleado o no, no trae a nadie nuevo.
Lo que tiene que devolver
Estas filas, en este orden
| fecha | hechos | nuevas |
|---|---|---|
| 2026-01-20 | 1 | 0 |
| 2026-01-15 | 2 | 1 |
| 2026-01-14 | 1 | 1 |
| 2026-01-12 | 2 | 0 |
| 2026-01-11 | 1 | 0 |
| 2026-01-10 | 1 | 1 |
| 2026-01-09 | 1 | 1 |
| 2026-01-04 | 2 | 1 |
| 2026-01-03 | 1 | 1 |
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 fecha, COUNT(*) AS hechos
FROM pedidos
GROUP BY fecha
ORDER BY fecha DESC;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 log n)
- Con las manos vacíasSQL · subconsultas · nulos · agrupar
- Dos a la vezSQL · uniones · nulos · comparaciones
- El cuaderno del mostradorSQL · conjuntos · ordenar · nulos
- Gastó cero, pero saleSQL · uniones · nulos · agrupar
- La boleta en una filaSQL · uniones · agrupar · condicionales
- La lista del pasilloSQL · uniones · agrupar · ordenar