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 abarca todas las filas y obtendrías el total general en cada línea. Con él, la ventana se amplía una fila a la vez en ese orden, por lo que cada fila solo ve a sí misma y todo lo que la precede.
Añade un PARTITION BY para restablecer 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:
revenue:region,day,amount
Devuelve region, day, amount y region_running_total: el amount acumulado para esa región hasta este día, inclusive. El total acumulado debe reiniciarse para cada región.
Usa PARTITION BY en la ventana. Ordena por region, después por day.
Prué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
2Funciones de cadenas
LENGTH, UPPER, LOWERSUBSTRINSTRREPLACE y TRIMConcatenar con ||Repaso - Facturas3Agregación condicional
COUNT con CASESUM con CASEConvertir filas en columnasRepaso: fuentes de tráfico6Recetas de análisis
Top-N por grupoPorcentaje del totalTotal acumuladoConservar una fila por claveRepaso: clientes principalesPractica por tu cuenta: Playground de SQL