Saltar al contenido

Una consulta dentro de otra

SQL · Unidad 9: Subconsultas

En la unidad 5 quisiste saber qué productos cuestan más que el promedio. WHERE precio > AVG(precio) no pasó, y el arreglo fue escribir a mano el 201.57. Ese número es una foto. En cuanto cambie un precio, el promedio será otro y la consulta seguirá comparando con el viejo.

La consulta que calcula el promedio ya la sabes escribir. Va entre paréntesis, en el sitio donde iba el número. Eso es una subconsulta, una consulta dentro de otra.

SELECT nombre, precio
FROM productos
WHERE precio > (
  SELECT AVG(precio)
  FROM productos
);

Devuelve

nombreprecio
Portátil899
Tableta320

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. 1. Opción múltiple

    El Portátil baja de 899 a 499, y con él el promedio de la tienda, de 201.57 a 151.57. El Monitor cuesta 189. ¿Qué devuelve desde ese día cada versión, la del 201.57 escrito a mano y la de la subconsulta?

  2. 2. Ordena las líneas

    ¿Qué pedidos son más grandes que un pedido promedio? Ordena la consulta que da su número y su cantidad, del más grande al más pequeño. Sobran dos líneas.

  3. 3. Predice la salida

    ¿Qué cuesta más que un producto promedio de Audio? En Audio hay dos productos, los Audífonos, de 59.9, y el Parlante, de 74, que promedian 66.95. El Monitor cuesta 189, la Tableta 320 y el Portátil 899. Lo demás no llega a 50. ¿Qué devuelve esta consulta?

  4. 4. Ordena las líneas

    ¿Qué clientes de Lima son mayores que el cliente promedio de toda la tienda? Ordena la consulta que da su nombre y su edad, por nombre. Sobran dos líneas.

  5. 5. Predice la salida

    ¿De qué queda menos en el almacén? El Cable y el Parlante tienen stock 0. El que les sigue es el Portátil, con 3. ¿Qué devuelve esta consulta?

  6. 6. Encuentra el bug

    Alguien busca algo que cueste menos que cualquier equipo. Los equipos son el Portátil, de 899, y la Tableta, de 320. La consulta corre, y lo primero que ofrece es la Tableta. ¿Qué línea tiene el problema?

  7. 7. Opción múltiple

    ¿Cuál de estas subconsultas no puede devolver nunca más de una fila, entren los productos que entren en la tabla?

  8. 8. Encuentra el caso que falla

    El letrero de la vitrina anuncia lo más caro de la tienda, que es el Portátil, de 899. Si varios productos comparten el precio más alto, tienen que salir todos. Alguien lo escribió con ORDER BY y LIMIT 1. ¿Con cuál de estos cambios deja un producto fuera del letrero?

  9. 9. Completa el código

    Un cliente mira el Monitor, que es el producto 3, y pregunta qué hay por encima de ese precio. Completa la subconsulta para que devuelva un solo valor, el precio del Monitor.

  10. 10. Escribe el código

    Lo que salió al principio, el Portátil y la Tableta, son los dos equipos. Cuestan tanto que suben el promedio de toda la tienda, y nada más lo alcanza. El dueño quiere la misma pregunta sin ellos. Escribe una consulta con dos columnas en este orden, el nombre y el precio de los productos que no son de la categoría Equipos y cuestan más que el promedio de los que no son de Equipos. El más caro primero.

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 →