Обсуждение: plpgsql, I have a solution, want to see if there is a cleaner/better one. Taking vertical list and comma separating it onto a row
Henry Drexler, 10.11.2011 14:22: > I am thinking there is a better/simpler way, though this is what I have working: > > (postgres 9.1) > > > I would like to have the list of colors for each type of clothing to be comma seperated in the end result. > > like this: > > type organized_by_type > pants red, blue, orange > shirt black, gray > CREATE TABLE clothes > ( > type character varying, > color character varying > ) SELECT type, string_agg(color, ',') as organized_by_type FROM clothes GROUP BY type;
SELECT type,
string_agg(color, ',') as organized_by_type
FROM clothes
GROUP BY type;
On Nov 10, 2011, at 8:22, Henry Drexler <alonup8tb@gmail.com> wrote: > I am thinking there is a better/simpler way, though this is what I have working: > > (postgres 9.1) > > > I would like to have the list of colors for each type of clothing to be comma seperated in the end result. > > like this: > > type organized_by_type > pants red, blue, orange > shirt black, gray > > > Use the STRING_AGG aggregate function instead of writing your own. David J
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Henry Drexler
Sent: Thursday, November 10, 2011 8:42 AM
To: Thomas Kellerer
Cc: pgsql-general@postgresql.org
Subject: Re: [GENERAL] Re: plpgsql, I have a solution, want to see if there is a cleaner/better one. Taking vertical list and comma separating it onto a row
On Thu, Nov 10, 2011 at 8:34 AM, Thomas Kellerer <spam_eater@gmx.net> wrote:
SELECT type,
string_agg(color, ',') as organized_by_type
FROM clothes
GROUP BY type;
wow, yes that is cleaner.
Thank you for taking the time - obviously I need to read through the string functions again.
It isn’t a “String Function” but an “Aggregate Function”; classification can be a pain sometimes – especially when more than one category could readily apply.
David J.