Menu
Coddy logo textTech

Agregación integrada, 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 las consultas anidadas resultan útiles.

Cuando quieras realizar cálculos que combinen filas individuales con valores agregados, necesitas usar una consulta anidada. He aquí por qué:
Esto no te dará el resultado por fila que quieres:

SELECT value + MIN(value)
FROM table1

La 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 table1

Esto funciona porque la consulta anidada (SELECT MIN(value) FROM table1) se ejecuta primero y devuelve un único valor, que después se puede utilizar en la consulta principal para cada fila.

Casos de uso comunes para agregaciones anidadas:
1. Comparar cada valor con el promedio

2. Cálculo del porcentaje del total

3. Encontrar diferencias con respecto a los valores máximos o mínimos

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • items: id, price

Calcula cuánto supera el precio de cada elemento al precio promedio de todos los elementos. Muestra el ID del elemento, su precio y la diferencia con respecto al promedio. Nombra la columna de diferencia como diff_from_avg.

Ordena los resultados por la diferencia en orden descendente.

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de SQL