Menu
Coddy logo textTech

Total acumulado

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 25 de 27.

Un total acumulado es SUM sobre una ventana con ORDER BY: eso convierte el agregado en uno que crece fila por fila.

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

Sin ORDER BY la ventana cubre cada fila y obtendrías el total general en cada línea. Con ella, la ventana se expande una fila a la vez en ese orden, por lo que cada fila se ve solo a sí misma y a todo lo anterior.

Añade un PARTITION BY para reiniciar el total acumulado por grupo, por ejemplo, el total acumulado de ingresos por región, día a día.

challenge icon

Desafío

Fácil

Tablas y columnas disponibles:

  • <strong>revenue</strong>: <strong>region</strong>, <strong>day</strong>, <strong>amount</strong>

Devuelve region, day, amount y region_running_total: el amount acumulado para esa región hasta e incluyendo este día. El total acumulado debe reiniciarse para cada región.

Usa PARTITION BY en la ventana. Ordena por region, luego por day.

Hoja de referencia

Un total acumulado utiliza SUM con ORDER BY en la ventana — la ventana se expande fila por fila en ese orden:

SELECT day, amount,
       SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenue

Añade PARTITION BY para reiniciar el total acumulado por grupo:

SELECT region, day, amount,
       SUM(amount) OVER (PARTITION BY region ORDER BY day) AS region_running_total
FROM revenue
ORDER BY region, day

Pruébalo tú mismo

SELECT region, day, amount,
       -- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
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 Más allá de lo básico