Saltar al contenido

Proyecto: los mejores clientes

SQL · Unidad 9: Subconsultas

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

nombreunidades
Mateo10
Luis8
Ana4
Valeria4
Diego2
Sofía2

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 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. 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. 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?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →