2009/7/1 Alvaro Herrera <alvhe...@alvh.no-ip.org>: > 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