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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Chávez B. | 2008-08-14 11:20:38 | Re: Seleccionar último registro entre un grupo |
Previous Message | martin | 2008-08-14 00:38:53 | Re: Ayuda Respaldo incremental |