Hola y feliz año a todos,

Creo que esto ya salio en la lista pero no consigo dar con ello.

Tengo una tabla histórica donde guardo las todas operaciones de cada referencia y no consigo dar con un sql, mas o menos optimizado, que devuelva las 3 ultimas filas de cada referencia en orden de fecha.

La estructura simplificada vendría a ser:
Historico

Operacion   Referencia     Fecha
--------------------------------
1           A1          15/12/2009
2           A1          20/12/2009
3           A1          30/05/2010
4           A1          06/06/2010
5           A1          12/08/2010
6           A1          20/08/2010
7           B2          11/12/2009
8           B2          20/05/2010
9           B2          30/06/2010
10          B2          15/09/2010
11          C3          12/02/2010
......

El resultado que desearía obtener es:

Operacion   Referencia     Fecha
--------------------------------
6           A1          20/08/2010
5           A1          12/08/2010
4           A1          06/06/2010
10          B2          15/09/2010
9           B2          30/06/2010
8           B2          20/05/2010
11          C3          12/02/2010


Para obtener solo la ultima fila de cada referencia utilizo una receta de la lista que funciona muy bien:
select distinc on (referencia) operacion, referencia, fecha
from historico
order by referencia, fecha desc.

Pero en este caso de 3 por referencia no doy con la forma de hacerlo bien en un SQL sin utilizar funciones.

Agradecería cualquier ayuda.

--
Oswaldo Hernández
-
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