Re: Joining several rows into only one

From: "Jonathan S(dot) Katz" <jonathan(dot)katz(at)excoventures(dot)com>
To: JORGE MALDONADO <jorgemal1960(at)gmail(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Joining several rows into only one
Date: 2012-11-28 18:37:01
Message-ID: 5F7A236E-DB07-4583-8492-2CAB3720FBA3@excoventures.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Nov 28, 2012, at 1:33 PM, JORGE MALDONADO wrote:

> I have a SELECT statement that gives me a result like this:
>
> SONG ARTIST
> -----------------------------------
> Song1 Artist1
> Song1 Artist2
> Song1 Artist3
> Song2 Artist2
> Song3 Artist4
> Song4 Artist1
> Song5 Artist4
>
> As you can see, the same song may belong to more than one artist, and this is fine. What I would like to do is NOT to get several rows, one for each different artist, but to join all of the artists in one column and display only one row.
> Is this possible?

Hi Jorge,

Try the array_agg function:

SELECT song, array_agg(artist)
FROM table
GROUP BY song;

Best,

Jonathan

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Oliver d'Azevedo Cristina 2012-11-28 18:42:27 Re: Joining several rows into only one
Previous Message JORGE MALDONADO 2012-11-28 18:33:15 Joining several rows into only one