2013/10/2 Marco Aurelio <[email protected]> > Caros, > > Eu tenho uma query que me retorna o seguinte resultado: > > Hora Consumo Atual > 08:00 10 > 09:00 25 > 10:00 37 > 11:00 42 > > Eu precisava calcular e adicionar uma coluna "Aumento" neste query ficando > assim: > > Hora Consumo atual Aumento > 08:00 10 10 (aumento em relação ao registro > anterior) > 09:00 25 15 > 10:00 37 12 > 11:00 42 5 > > É possível fazer isto numa query ? > > Você pode usar a função LAG, que "pega" o elemento de uma linha anterior. Exemplo:
SELECT hora, consumo, consumo - COALESCE( LAG(consumo) OVER (ORDER BY hora), 0) AS aumento FROM .... ORDER BY hora; Na primeira linha, a LAG retorna NULL (pois não tem uma anterior), por isso usei a função COALESCE. Na próxima, mostre a query usada para facilitar a ajuda... Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
