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

Responder a