SQL: 3 ultimas filas de cada referencia

From: Oswaldo Hernández <listas(at)soft-com(dot)es>
To: Lista Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: SQL: 3 ultimas filas de cada referencia
Date: 2011-01-04 18:04:13
Message-ID: 4D23611D.1090800@soft-com.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Oswaldo Hernández 2011-01-04 18:14:53 Re: SQL: 3 ultimas filas de cada referencia
Previous Message Vladimir Damian 2011-01-04 16:06:28 Backups Acotados