2009/7/1 Alvaro Herrera <[email protected]>:
> Edwin Quijada escribió:
>>
>> Alguien puede explicarme que significan las funciones windows en la version
>> 8.4??
>
> Son como funciones de agregación, excepto que en lugar de actuar sobre
> todo el resultado (como sum(), count() etc), actúan sobre un
> subconjunto. Y en vez de agrupar el resultado con el GROUP BY, pueden
> actuar sobre una "ventana" definida antes y después del registro
> "actual".
>
un ejemplo super simple es el de mostrar todos los registro e ir
mostrando un acumulado o saldo en cada registro (el ejemplo se
complica un poco solo porque agregue el union para tener un saldo
inicial )
select tipo, numero, cantidad, sum(cantidad) over (order by fecha)
from (select tipo, numero, cantidad * (-1) as cantidad, fecha::date
from fcmovinv
where producto = 'PAR00056'
and fecha::date between '2009-06-01'::date and '2009-06-30'::date
UNION ALL select 'SI', 0, 200, '2009-05-31'::date) as foo
order by fecha;
tipo | numero | cantidad | sum
-------+-----------+-------------+--------
SI | 0 | 200 | 200
FA | 12028 | -12.00 | 188.00
FA | 12102 | -20.00 | 168.00
FA | 12204 | -24.00 | 144.00
FA | 12239 | -10.00 | 134.00
FA | 12257 | -6.00 | 128.00
FA | 12301 | -6.00 | 122.00
FA | 12332 | -6.00 | 106.00
FA | 12334 | -10.00 | 106.00
FA | 12369 | -40.00 | 56.00
FA | 12390 | -10.00 | 56.00
FA | 12419 | -10.00 | 46.00
FA | 12456 | -16.00 | 30.00
(13 rows)
--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Asesoría y desarrollo de sistemas
Guayaquil - Ecuador
Cel. +59387171157
--
TIP 8: explain analyze es tu amigo