Contenido del curso
Bases de Datos: De Cero a Experto

🎯 Objetivo:

Aprender a usar subconsultas (también llamadas nested queries) para resolver problemas que requieren comparaciones, filtros o cálculos usando otra consulta como referencia.


🧠 ¿Qué es una subconsulta?

Es una consulta SQL escrita dentro de otra consulta.
Se encierra entre paréntesis y devuelve un resultado que se usa dentro de la principal.

💡 Puedes usar subconsultas en:

  • SELECT

  • FROM

  • WHERE


🧩 Ejemplos prácticos

🔍 ¿Cuál es el total más alto de una venta?

sql
 
SELECT MAX(total) FROM ventas;

Pero… si queremos saber quién hizo esa venta, usamos una subconsulta:

sql
 
SELECT id_cliente, total
FROM ventas
WHERE total = (
SELECT MAX(total) FROM ventas
);

🔹 Devuelve el cliente que hizo la venta más cara.


🔍 ¿Qué productos tienen un precio mayor al promedio?

sql
 
SELECT nombre, precio
FROM producto
WHERE precio > (
SELECT AVG(precio) FROM producto
);

🔹 Compara cada producto con el promedio general de precios.


🔍 Subconsulta en el FROM

sql
 
SELECT categoria, AVG(precio) AS promedio
FROM (
SELECT * FROM producto
) AS productos_temp
GROUP BY categoria;

🔹 Útil cuando quieres filtrar o transformar datos antes de agruparlos.


🔍 Subconsulta con IN (conjunto de valores)

sql
 
SELECT nombre
FROM cliente
WHERE id_cliente IN (
SELECT id_cliente FROM venta
WHERE fecha >= '2024-06-01'
);

🔹 Muestra clientes que han comprado en junio o después.


📝 Fragmento práctico

  1. Muestra el producto más caro de la tabla producto.

  2. Muestra clientes que han comprado más de una vez (COUNT(*) > 1) con subconsulta.

  3. Muestra productos cuyo precio sea mayor que el promedio de su categoría.


💬 Cierre de la lección

Las subconsultas permiten resolver problemas complejos de forma limpia y sin procedimientos almacenados.
Aunque pueden ser menos eficientes que los JOIN en algunos casos, son muy útiles para filtrar, comparar y calcular dentro de una sola sentencia SQL.


✅ Revisión rápida

  • ¿Qué hace una subconsulta dentro de WHERE?

  • ¿Para qué sirve una subconsulta en el SELECT?

  • ¿Cuándo prefieres JOIN vs. subconsulta?

Scroll al inicio