Total Acumulado
Parte da seção Além do Básico do Journey de SQL da Coddy — lição 25 de 27.
Um total acumulado (cumulativo) é o SUM sobre uma janela com ORDER BY: isso transforma a agregação em uma que cresce linha a linha.
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueSem ORDER BY a janela abrange todas as linhas e você obteria o total geral em cada linha. Com ele, a janela se expande uma linha por vez nessa ordem, então cada linha vê apenas a si mesma e tudo o que vem antes dela.
Adicione um PARTITION BY para redefinir o total acumulado por grupo, por exemplo, o total acumulado de receita por região, dia a dia.
Desafio
FácilTabelas e colunas disponíveis:
<strong>revenue</strong>:<strong>region</strong>,<strong>day</strong>,<strong>amount</strong>
Retorne region, day, amount e region_running_total: o amount acumulado para aquele region até este dia, inclusive. O total acumulado deve ser reiniciado para cada região.
Use PARTITION BY na janela. Ordene por region, depois por day.
Folha de consulta
Um total acumulado usa SUM com ORDER BY na janela — a janela se expande linha por linha nessa ordem:
SELECT day, amount,
SUM(amount) OVER (ORDER BY day) AS running_total
FROM revenueAdicione PARTITION BY para reiniciar o 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, dayExperimente você mesmo
SELECT region, day, amount,
-- SUM(amount) OVER (PARTITION BY region ORDER BY day)
FROM revenue
ORDER BY region, day
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Além do Básico
3Agregação Condicional
COUNT com CASESUM com CASETransformando Linhas em ColunasRecapitulação - Fontes de Tráfego6Receitas de Analytics
Top-N por GrupoPercentual do TotalTotal AcumuladoMantendo uma Linha por ChaveRecapitulação - Melhores Clientes