Unir, filtrar y resumir
SQL · Unidad 7: Unir tablas
- Plan completo
- SQL
- 10 ejercicios
Desde la unidad 5 hay una pregunta que no se podía hacer. ¿Cuánto dinero ha entrado por cada pedido? pedidos sabe cuántas unidades fueron, y el precio de cada una vive en productos.
Con las dos tablas unidas, precio y cantidad quedan en la misma fila, y una cuenta puede usar las dos. Estas son las tres ventas más grandes de la tienda. El pedido de 10 cables, el mayor en unidades, no está entre ellas. Vale 52.5.
SELECT p.id, pr.nombre,
pr.precio * p.cantidad AS total
FROM pedidos p
JOIN productos pr
ON p.producto_id = pr.id
ORDER BY total DESC
LIMIT 3;Devuelve
| id | nombre | total |
|---|---|---|
| 9 | Portátil | 899 |
| 6 | Monitor | 378 |
| 12 | Tableta | 320 |
El resto de la explicación está en la lección, que es del plan completo.
Ejercicios de esta lección
Se hacen en la app, que los corrige al momento y explica por qué.
1. Completa el código
¿De cuánto fue cada pedido de Valeria, la clienta 5? Completa la cuenta con la columna que dice cuántas unidades se llevó.
2. Predice la salida
Hay tres pedidos de 2 unidades. Uno es de Teclados, que cuestan 45.5, otro de Monitores, de 189, y otro de Audífonos, de 59.9. ¿Qué devuelve esta consulta?
3. Completa el código
¿Qué pedidos van a Lima? Completa el filtro.
4. Ordena las líneas
¿Qué pedidos ha habido de Accesorios? Ordena la consulta que muestra el producto y la cantidad de cada uno, del pedido más grande al más pequeño. Los empates, por número de pedido. Sobra una línea.
5. Predice la salida
Esos 2289.85 cuentan los doce pedidos. El pedido 12 tiene fecha del 20 de enero, y hoy es 15. Es una Tableta, de 320. ¿Qué devuelve esta consulta?
6. Encuentra el bug
¿Cuánto se ha vendido del Monitor, que es el producto 3? Se han pedido 3 unidades, a 189 cada una, así que deberían salir 567. La consulta corre sin error y contesta 99.5. ¿Qué línea tiene el problema?
7. Ordena las líneas
En la unidad pasada, quien más unidades se había llevado era «el cliente 4». Ordena la consulta que da una fila por cada cliente que ha pedido algo, con su nombre y las unidades que suman sus pedidos, de más a menos. Los empates, por nombre. Se agrupa por el
iddel cliente, que es lo que lo identifica, y el nombre va al lado para poder mostrarlo. Sobra una línea.8. Predice la salida
En Audio hay dos productos. De los Audífonos quedan 15, y se han pedido dos veces, una de 2 unidades y otra de 1. Del Parlante no queda ninguno, y nadie lo ha pedido. ¿Qué devuelve esta consulta?
9. Encuentra el caso que falla
Alguien tenía la consulta de ventas del Portátil, que es el producto 5, y le cambió una columna para ver cuántos quedan en el almacén. Hoy quedan 3, y de él se ha hecho un solo pedido. La consulta debería dar siempre el stock del Portátil. ¿Con cuál de estos cambios da un número que no es el del almacén?
10. Escribe el código
El ranking de productos por dinero. Escribe una consulta con tres columnas en este orden, el nombre del producto, las unidades que se han pedido de él y el dinero que suman, que es
precioporcantidad. Una fila por cada producto que alguien ha pedido, y primero el que más dinero ha dejado.
Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.