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.
Experimente 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