Proyecto: los mejores clientes
SQL · Unidad 9: Subconsultas
- Plan completo
- SQL
- Proyecto
- 3 ejercicios
El dueño quiere saber quiénes son sus mejores clientes. Su primera idea es sencilla. Son los que se han llevado más unidades que un cliente promedio, y el promedio se saca entre los seis que han pedido algo. Cuentan los doce pedidos, también el que lleva fecha del día 20.
Son tres pasos. Cuántas unidades lleva cada cliente, cuál es el promedio de esos seis números y quién lo pasa. El primero ya lo sabes hacer.
SELECT c.nombre,
SUM(p.cantidad) AS unidades
FROM pedidos p
JOIN clientes c
ON p.cliente_id = c.id
GROUP BY c.id, c.nombre
ORDER BY unidades DESC, c.nombre;Devuelve
| nombre | unidades |
|---|---|
| Mateo | 10 |
| Luis | 8 |
| Ana | 4 |
| Valeria | 4 |
| Diego | 2 |
| Sofía | 2 |
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Completa el código
El segundo paso. El promedio de unidades por cliente no es
AVG(cantidad), que da el pedido promedio, 2.5. Hay que promediar las seis sumas. Completa.2. Escribe el código
El tercer paso junta los otros dos. Escribe una consulta con dos columnas en este orden, el nombre de cada cliente que se ha llevado más unidades que el cliente promedio, y cuántas lleva. Primero quien más lleva, y los empates, por nombre. El promedio no puede ir escrito a mano. Lo calcula la subconsulta del paso anterior, que va en un
HAVING, en el sitio donde iría el 5.3. Predice la salida
Al dueño no le convence. Mateo encabeza la lista por 10 Cables, a 5.25 cada uno. Así que cambia la medida, de unidades a dinero. En dinero, Diego lleva 958.9, Luis 797.5, Ana 299.9, Sofía 119.8, Valeria 61.25 y Mateo 52.5. Un pedido promedio es de 190.82, y un cliente promedio lleva 381.64. Busca en el centro de la consulta con cuál de los dos se compara. Adentro, las tablas llevan un 2 en su alias, porque son otra copia de las de afuera. ¿Qué devuelve?
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.