Skip site navigation (1) Skip section navigation (2)

Seleccionar último registro entre un grupo

From: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Seleccionar último registro entre un grupo
Date: 2008-08-14 11:04:01
Message-ID: E2A0C3581F7A4EA0AF7E517EAF616A6A@Principal (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Cordial saludos compañeros. Tengo el siguiente problema y aunque lo he solucionado se me hace bastante pesado para la cantidad de registros que tengo, por lo cual quisiera saber si a alguien se le ocurre una mejor alternativa o algún artificio útil:

Tengo una tabla más o menos así:

id_parte    anno    mes    valor
1              2005    1        5
1              2005    2        10
2              2008    5        20
2              2008    6        30
3              2008    4        40

Lo que quiero es obtener el último valor (Anno/Mes) por cada parte. Para el ejemplo: la salida sería:

id_parte    anno    mes    valor
1              2005    2        10
2              2008    6        30
3              2008    4        40  

Por ahora lo que hago es algo de este estilo:

SELECT tabla.id_parte, tabla.anno, tabla.mes, tabla.valor
FROM    (
                    SELECT tabla.id_parte, MAX(tabla.anno*100 + tabla.mes) AS AnnoMes
                    FROM tabla
                    GROUP BY tabla.id_parte
            ) maxtabla INNER JOIN tabla ON tabla.id_parte = maxtabla.id_parte AND AnnoMes = (tabla.anno*100 + tabla.mes) 

Atentamente,

RAUL DUQUE
Bogotá, Colombia  

Responses

pgsql-es-ayuda by date

Next:From: Javier Chávez B.Date: 2008-08-14 11:20:38
Subject: Re: Seleccionar último registro entre un grupo
Previous:From: martinDate: 2008-08-14 00:38:53
Subject: Re: Ayuda Respaldo incremental

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group