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

Responder a