----- Original Message ----- From: "Marcelo Fernández" <[EMAIL PROTECTED]>
To: "Raúl Andrés Duque Murillo" <[EMAIL PROTECTED]>
Sent: Thursday, August 14, 2008 6:52 AM
Subject: Re: [pgsql-es-ayuda] Seleccionar último registro entre un grupo


Raúl Andrés Duque Murillo escribió:
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

Hola Raul, creo que esto creo te puede servir:

http://www.postgresonline.com/journal/index.php?/archives/68-More-Aggregate-Fun-Whos-on-First-and-Whos-on-Last.html#extended


Excelente Marcelo !!!!

Muchas Gracias.

RAUL DUQUE
Bogotá, Colombia


Saludos,
Marcelo
--
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA

E-Mail: [EMAIL PROTECTED]
Jabber ID: [EMAIL PROTECTED]
Public Key ID: 5C990A6C 111C3661
Blog: http://marcelosoft.blogspot.com


--
TIP 5: ¿Has leído nuestro extenso FAQ?
        http://www.postgresql.org/docs/faqs.FAQ.html

Responder a