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