Menu
Coddy logo textTech

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 revenue

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

challenge icon

Desafio

Fácil

Tabelas 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
quiz iconTeste seus conhecimentos

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