Subconsultas, parte 2
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 39 de 72.
Hay tres tipos principales de subconsultas:
- Subconsultas escalares: devuelven un único valor (una fila, una columna)
- Subconsultas de fila: devuelven una única fila con varias columnas
- Subconsultas de tabla: devuelven varias filas y columnas
Por ejemplo, estos son algunos casos de uso para cada tipo de subconsulta:
Subconsulta escalar - Buscar empleados que ganan más que el salario promedio:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Subconsulta de fila: encontrar empleado(s) con el mismo departamento y salario que Alice
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Subconsultas de tabla: mostrar los departamentos y su cantidad de empleados
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;Observa los casos de uso:
- Escalar: comparaciones simples (>, <, =)
- Cuando necesites hacer coincidir varias columnas
- Cuando necesites consultar a partir de un conjunto de resultados
Desafío
FácilTablas y columnas disponibles:
shop:price,quantity,category,list_date
Encuentra las categorías cuya cantidad total sea mayor que el promedio de todas las cantidades de la tienda.
Importante: Debes usar una subconsulta dentro de la cláusula HAVING para calcular el promedio. No uses un valor codificado manualmente ni una consulta separada: la subconsulta debe calcular AVG(quantity) directamente a partir de la tabla shop dentro de HAVING.
Pasos para resolverlo:
- Primero, escribe una subconsulta que calcule el promedio de todas las cantidades de la tienda:
SELECT AVG(quantity) FROM shop - Después, para cada categoría, suma sus cantidades y compáralas con esta subconsulta usando la palabra clave
HAVING
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL