[SQL] Acumular Valor dos Registros de uma Coluna em uma Tabela

Como analista de gestão, eu trabalho com extração e tratamento de dados para possibilitar a tomada de decisão, por isso, uma boa parte da minha atividade é desenvolver consulta a base de dados, então todos os dias crio SQLs, a maioria das vezes são consultas simples, mas algumas vezes são verdadeiros desafios, achei uma solução na internet que resolvi compartilhar.

O que eu precisava era conseguir criar uma consulta que em uma das colunas pudesse apresentar o resultado acumulado, agrupando por uma determinada ordem. Ver o exemplo do quadro abaixo, o que eu precisava era preencher a coluna “Acumulado”, agora para várias linhas e vários “bairros” distintos.

Tabela1

Na pesquisa que fiz na internet encontrei a solução (neste site, me ajudou muito), mas precisei modificar um pouco para poder conseguir fazer a contagem com base no município. Solução simples e elegante, facilitou muito a minha vida.

SELECT 
   ESTADO, 
   MUNICIPIO, 
   BAIRRO, 
   HABITANTES, 
   (SELECT sum(HABITANTES) 
    FROM TABELA1 as t2 
    WHERE t.HABITANTES >= t2.HABITANTES 
      AND t.MUNICIPIO = t2.MUNICIPIO) as Acumulado 
FROM TABELA1 as t ORDER BY t.MUNICIPIO, t.HABITANTES
Compartilhe este post:

One Comment

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *