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) é SUM em 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 amplia uma linha de cada vez nessa ordem, de modo que 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 da receita por região, dia a dia.

challenge icon

Desafio

Fácil

Tabelas e colunas disponíveis:

  • revenue: region, day, amount

Retorne region, day, amount e region_running_total: o amount cumulativo para essa região até e incluindo este dia. O total acumulado deve ser reiniciado para cada região.

Use PARTITION BY na janela. Ordene por region e, em seguida, 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

Pratique por conta própria: Playground de SQL