mmm se me ocurre algo así...
sirve? probalo

select
   (select count(*)
    from historico b
    where b.ref = a.ref and b.oper>=a.oper) cantidad,
   oper,
   ref,
   fecha
from
   historico a
where cantidad between 1 and 3
order by ref, oper desc


Saludos

~~~~~~~~~~~~~~~~
Guillermo Villanueva


El 5 de enero de 2011 11:35, Dorian Kuroki <dkur...@gmail.com> escribió:

> Creo que deberias orientar la solucion a una funcioncon con el uso de
> un cursor .
> sin window functions , no vas a poder resolverlo en un solo statement
>
> Dorian
>
> 2011/1/4 Crispin T. <cris.e...@gmail.com>:
> >
> >> select *
> >> from referencia
> >> order by fecha desc, nroreferencia desc
> >> limit 3
> >
> > no, esa solucion devolveria solo 3 tuplas y segun su consulta deveria
> > devolver 3 tuplas por id como maximo haciendose muchas tuplas en la tabla
> > resultante. talves utilizando para la consulta un group by por referencia
> y
> > haciendo un having para garantizar 3 tuplas... pero no creo que sea la
> > solucion mas eficiente.
> >
> >
> > --
> > Solo alcanzaras el conocimiento conociendo la ignorancia.
> >
> >
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

Responder a