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