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 revenueSin 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.
Desafío
FácilTablas 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 revenueAñ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, dayPruébalo tú mismo
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
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
3Agregación condicional
COUNT con CASESUM con CASEPivotar filas a columnasResumen - Fuentes de tráfico6Recetas de Analítica
Top-N por grupoPorcentaje del totalTotal acumuladoMantener una fila por claveResumen - Mejores clientes