Menu
Coddy logo textTech

Aggregation Functions

Parte de la sección Fundamentos del Journey de SQL de Coddy — lección 68 de 72.

Las funciones de agregación se utilizan para calcular el AVG() o MAX() o cualquier otra función de agregación hasta la fila actual.
Por ejemplo, podríamos calcular los ingresos máximos que obtuvimos hasta cada periodo de finalización:

mesingresosregión
440Este
520Este
660Oeste
755Oeste
861Este
SELECT month, revenue, MAX(revenue) OVER (ORDER BY month ASC) as max_revenue
from table1

Esto devolverá:

mesingresosingresos_máximos
44040
52040
66060
75560
86161

Para los meses 4 y 5, los ingresos máximos son 40, para los meses 6 y 7 son 60, y para el mes 8 son 61. Esto se debe a que cuando encuentra unos nuevos ingresos mayores, descarta los anteriores y utiliza los mayores hasta el momento.

Para la función AVG() se verá así:

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
mesingresosingresos_promedio
44040
52030
66040
75543.75
86147.2

También podemos agrupar nuestros cálculos por categorías específicas usando PARTITION BY. Por ejemplo:

SELECT month, revenue, region,
MAX(revenue) OVER (PARTITION BY region ORDER BY month ASC) as max_revenue
FROM table1

Nos daría:

mesingresosregióningresos_máximos
440Este40
520Este40
660Oeste60
755Oeste60
861Este61

Ahora el máximo se calcula por separado para cada región. La región Este y la región Oeste mantienen sus propios máximos acumulados de forma independiente.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>books</strong>: <strong>book</strong>, <strong>page</strong>, <strong>words</strong>

Para cada libro, muestra el nombre del libro, sus páginas totales, el número de palabras en cada página y calcula:

  1. El número máximo de palabras encontradas en cualquier página de ese libro
  2. El promedio de palabras por página para todo el libro
  3. La diferencia entre las palabras de la página actual y el promedio de palabras por página del libro

Muestra los resultados ordenados por libro y número de página.

Devuelve las siguientes columnas:

  • book
  • page
  • words
  • max_words_in_book
  • avg_words_per_page
  • diff_from_avg

Hoja de referencia

Las funciones de ventana con agregación calculan valores a través de un conjunto de filas relacionadas con la fila actual. Use la cláusula OVER con ORDER BY para cálculos acumulativos:

SELECT column, 
       MAX(column) OVER (ORDER BY column ASC) as running_max,
       AVG(column) OVER (ORDER BY column ASC) as running_avg
FROM table

Use PARTITION BY para agrupar cálculos por categorías:

SELECT column, category,
       MAX(column) OVER (PARTITION BY category ORDER BY column ASC) as max_per_category
FROM table

Esto calcula el máximo por separado para cada categoría, manteniendo cálculos acumulativos independientes.

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