On Thu, Jun 22, 2017 at 3:10 PM Ricardo <rica...@longomaquinas.com> wrote:
> Estou quebrando a cabeça aqui pra criar um select que calcule o Resultado
de entrada e saída da tabela abaixo sem tem que criar uma função. Será
possível ?

Sim, com uma window function:

#select teste.*, sum(v_entrada) over w - sum(v_saida) over w from teste
window w as (partition by teste.mes);
 tipo | mes | v_entrada | v_saida | ?column?
------+-----+-----------+---------+----------
 E    |   1 |       100 |       0 |     -100
 S    |   1 |         0 |     200 |     -100
 E    |   2 |       150 |       0 |      -80
 S    |   2 |         0 |     230 |      -80
 E    |   3 |       200 |       0 |      200
 S    |   3 |         0 |       0 |      200
(6 rows)


Essa apresentação sobre window functions do Bruce Momjian é uma leitura
adicional muito boa: https://momjian.us/main/writings/pgsql/window.pdf


-- 

Arthur Nascimento - tureba
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a