Agregados integrados, parte 2
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 35 de 72.
A veces necesitamos usar funciones de agregación de formas más complejas, como comparar cada fila con un valor agregado. Aquí es donde resultan útiles las consultas anidadas.
Cuando quieras realizar cálculos que combinen filas individuales con valores agregados, necesitas usar una consulta anidada. Este es el motivo:
Esto no te dará el resultado por fila que quieres:
SELECT value + MIN(value)
FROM table1La razón es que las funciones de agregación operan en toda la columna, mientras que la referencia a «value» intenta operar fila por fila. Para resolverlo, usamos una consulta anidada:
SELECT value + (SELECT MIN(value) FROM table1)
FROM table1Esto funciona porque la consulta anidada (SELECT MIN(value) FROM table1) se ejecuta primero y devuelve un único valor, que después se puede usar en la consulta principal para cada fila.
Casos de uso comunes de los agregados anidados:
1. Comparar cada valor con el promedio
2. Cálculo del porcentaje del total
3. Encontrar las diferencias con respecto a los valores máximos o mínimos
Desafío
FácilTablas y columnas disponibles:
items:id,price
Calcula cuánto supera el precio de cada artículo el precio promedio de todos los artículos. Muestra el ID del artículo, su precio y la diferencia con el promedio. Nombra la columna de la diferencia como diff_from_avg.
Ordena los resultados por la diferencia en orden descendente.
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 teléfonos móviles2Condiciones
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ículos6Retos introductorios
Repaso - Elecciones parlamentariasRepaso - Detención policial de un criminalRepaso - Envase de bebidas de barRepaso - Diseñar nuevas columnas9Varias tablas
JOIN básico, parte 1JOIN básico, parte 2Repaso: JOINAuto JOINRepaso: auto JOINUNIONSimplificar consultas: palabra clave WITHRepaso: consultas con WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterios ROWS y RANGEPractica por tu cuenta: Playground de SQL