Skip site navigation (1) Skip section navigation (2)

Re: Agrupar y concatenar

From: Cristian Olguín Avila <cristianolguin(at)gmail(dot)com>
To: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Agrupar y concatenar
Date: 2012-08-07 16:11:10
Message-ID: CACX=epNzMFCx68phT5om9kkPhgR9DdWxa364rax92j1p8-NC2g@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
para 8.4 existe una función que usa una estructura de datos.. si alguien la
necesita la envío.. la descargue de un blog hace tiempo..

saludos

Cristian O.
www.digitalbee.cl


2012/8/7 Guillermo Villanueva <guillermovil(at)gmail(dot)com>

> Perdón, me respondo yo solo:
>
> select
>     pos_email,
>     pos_apellido,
>     pos_nombre,
>     *string_agg*(edu_titulo, '<BR>')
>
> from postulantes inner join titulos using(pos_id)
> group by
>     pos_email,
>     pos_apellido,
>     pos_nombre
> Debía utilizar en 9.0 la función *string_agg*
>
> Guillermo Villanueva
>
>
>
>
> El 7 de agosto de 2012 08:49, Guillermo Villanueva <guillermovil(at)gmail(dot)com
> > escribió:
>
> Buenos días, estaba buscando si existe una función agregada no estándar
>> tal que así como se puede hacer un sum() de valores numéricos, pueda
>> concatenar valores de tipo varchar.
>> No encontré algo así, pero encontré una alternativa que la pongo a
>> consideración de uds.
>>
>> Supongamos el siguiente caso: tengo una tabla de postulantes (personas) y
>> otra de los títulos o estudios. Titulos tiene una FK apuntando a
>> postulantes, entonces quiero listar todos los posulantes y por cada uno de
>> estos la concatenación de las filas de títulos que tenga.
>> Yo pretendía algo así:
>>
>> select
>>     pos_email,
>>     pos_apellido,
>>     pos_nombre,
>>     sumvarchar(edu_titulo||'<BR>')
>> from postulantes inner join titulos using(pos_id)
>> group by
>>     pos_email,
>>     pos_apellido,
>>     pos_nombre
>>
>> Pero como sumvarchar no existe
>> Hice lo siguiente:
>>
>> select
>>     pos_email,
>>     pos_apellido,
>>     pos_nombre,
>>     array_to_string(array(select edu_titulo from educacion where
>> pos_email=a.pos_email),'<BR>')
>> from postulantes a
>>
>> Por favor, cuentenmé si hay alguna forma mas eficiente de hacerlo.
>> Desde ya muchas gracias
>>
>> Guillermo Villanueva
>>
>>
>>
>

In response to

pgsql-es-ayuda by date

Next:From: AnthonyDate: 2012-08-07 19:19:50
Subject: error en extensión
Previous:From: Guillermo VillanuevaDate: 2012-08-07 12:02:18
Subject: Re: Agrupar y concatenar

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group