Menu
CoddyTech

Funciones de agregación

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

Con OVER (ORDER BY ...), las funciones de agregación como AVG() o MAX() se calculan sobre las filas hasta la fila actual, incluidas las filas que empatan con ella en el valor de ORDER BY. Sin ORDER BY dentro de OVER, se calculan sobre todas las filas, por lo que cada fila obtiene el mismo valor.
Por ejemplo, podríamos calcular los ingresos máximos que obtuvimos hasta cada período final:

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

Esto devolverá:

mesingresosmax_revenue
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 ingresos mayores, descarta los anteriores y usa los más altos hasta ese momento.

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

SELECT month, revenue, AVG(revenue) OVER (ORDER BY month ASC) as avg_revenue
from table1
mesingresosavg_revenue
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ónmax_revenue
440East40
520East40
660West60
755West60
861East61

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

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • books: book, page, words

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

  1. El número máximo de palabras encontrado en cualquier página de ese libro
  2. El número promedio de palabras por página en 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

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