Re: Seleccionar último registro entre un grupo

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Seleccionar último registro entre un grupo
Date: 2008-08-14 14:25:53
Message-ID: 20080814142553.GB4232@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Raúl Andrés Duque Murillo escribió:

> 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)

¿Que version usas y cual es el explain de esto?

El max() debería convertirse a un indexscan + LIMIT, creo; pero solo de
8.2 en adelante. Si no lo hace automaticamente, haz la conversión a
mano (order by ... limit 1)

--
Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8
"Hoy es el primer día del resto de mi vida"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marcos T. Rios Rodriguez 2008-08-14 15:53:41 Re: Seleccionar último registro entre un grupo
Previous Message Javier Chávez B. 2008-08-14 11:20:38 Re: Seleccionar último registro entre un grupo