[Pgsql-ayuda] Funcion de agreagdo first

Jose Ayala - INCALPACA TPX jayala@incalpaca.com
Wed, 11 Jun 2003 17:59:37 -0500


No aportas mucho ;) , kreo kel el español no es el problema aki, access
ordena los campos por el group by y la funcion last devuelve siempre el
ultimo del agrupamiento... si le pido ke lo ordene pues me devolvera el
ultimo del agrupamiento ordenado, he encontrado una solucion para Postgres
(a pesar k dices k esto no se puede siempre hay soluciones) pero no kreo k
sea la mas optima, ya que tengo k usar 3 subselects, si a alguien se le
ocurre otra forma mas optima por favor hagalo saber, he tenido k agregar un
campo ID autonumeriko ke representa a cada registro unikamente

select codigo,nombre,
(select v.mensaje from mensajes as v where v.id=
(select max(w.id) from mensajes as w where w.codigo=mensajes.codigo)) as
ultmensaje
from mensajes group by codigo,nombre

Saludos

Jose J. Ayala Pineda
Sistemas e Informática
   Incalpaca TPX S.A.
  www.incalpaca.com


----- Original Message -----
From: "Manuel Sugawara" <masm@fciencias.unam.mx>
To: "Jose Ayala - INCALPACA TPX" <jayala@incalpaca.com>
Cc: <Pgsql-ayuda@tlali.iztacala.unam.mx>
Sent: Wednesday, June 11, 2003 5:38 PM
Subject: Re: [Pgsql-ayuda] Funcion de agreagdo first


> "Jose Ayala - INCALPACA TPX" <jayala@incalpaca.com> writes:
>
> >  Ok Manuel, asi es , el last y el first lo k hacen es devolver el valor
del
> >  primer o ultimo registro del agrupamiento, el max puede funcionar kon
> > fechas
> >  , pero kon datos numerikos o datos tipo alfanumerikos es to no sirve,
para
> >  ilustrsr un poko mas lo k hace mi sql en access: tengo una tabla donde
se
> >  almacena los mensajes enviados por cada usuario, lo k mi sql hace es
> > mostrar
> >  el codigo.nombre y la ultima fecha x mensaje d cada usuario, kon el max
> >  solucionariammos esto, pero y si en ves de la fecha deja tambien un
texto??
> >  y ke sea algo asi la tabla:
> >
> >  codigo nombre              mensaje
> >  123    JUAN PEREZ    'HOLA'
> >  456    LUIS PEREZ        'CHAU'
> >  123    JUAN PEREZ    'ULTIMO MENSAJE'
> >
> >  y kiero obtener esto
> >
> >  codigo nombre        nromensajes    ultimomensaje
> >  123    JUAN PEREZ        2        'ULTIMO MENSAJE'
> >  456    LUIS PEREZ          1        'CHAU'
>
> El resultado de un agregado como una tabla son conjuntos, ie, no estan
> ordenados. ¿cómo puede access saber que el último mensaje es 'ULTIMO
> MENSAJE' y no 'HOLA'?. No entiendo y creo que de funcionar así access
> esta medio roto (o roto y medio).
>
> Ahora y contestando a tu pregunta: No creo que se pueda hacer en
> PostgreSQL.
>
> BTW Cuesta mucho trabajo leer tus correos con la k intercabiada por c
> y personalmente me molesta: siendo el español una bella lengua ¿por
> qué destorzarla así?
>
> Saludos,
> Manuel.