Re: [pgsql-es-ayuda] Seleccionar último registro entre un grupo

From: "Raul Andres Duque" <raulandresduque(at)hotmail(dot)com>
To: "Marcos T(dot) Rios Rodriguez" <marcosrios(at)planet(dot)com(dot)pe>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Seleccionar último registro entre un grupo
Date: 2008-08-14 17:11:41
Message-ID: BAY112-DAV9419508BA2A924B2233A0BA720@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


----- Original Message -----
From: "Marcos T. Rios Rodriguez" <marcosrios(at)planet(dot)com(dot)pe>
To: "Raúl Andrés Duque Murillo" <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, August 14, 2008 10:53 AM
Subject: Re: [pgsql-es-ayuda] Seleccionar último registro entre un grupo

> Probaste con:
>
> SELECT DISTINCT ON (id_parte) id_parte, anno, mes, valor
> from tabla
> order by id_parte, ano, mes DESC
>

De mucha yuda marcos ... muchas gracias !!!

Atentamente,

RAUL DUQUE
Bogotá, Colombia

> Saludos,
>
> Marcos Rios.
> Arequipa - Peru
>
>
> 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
>>
>> __________ Información de ESET Smart Security, versión de la base de
>> firmas de virus 3356 (20080814) __________
>>
>> ESET Smart Security ha comprobado este mensaje.
>> http://www.eset.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2008-08-14 18:08:14 Re: Referencia entre bases de datos
Previous Message Raul Andres Duque 2008-08-14 16:42:41 Re: [pgsql-es-ayuda] Seleccionar último registro entre un grupo