That's exactly what I needed. Thanks very much! -Whit On Fri, Oct 9, 2009 at 12:29 PM, Raymond O'Donnell <rod@xxxxxx> wrote: > On 09/10/2009 17:17, Whit Armstrong wrote: >> Is there any easy way to get this data: >> >> kls_dev=# select * from ary_values; >> agent_name | myval >> ------------+------- >> a | 1 >> a | 2 >> a | 3 >> b | 4 >> b | 5 >> b | 6 >> (6 rows) >> >> to look like this: >> >> kls_dev=# select * from ary_test; >> agent_name | vals >> ------------+--------- >> a | {1,2,3} >> b | {4,5,6} >> (2 rows) > > Someone (Alvaro?) once posted a really handy aggregate which ought to do > what you want: > > CREATE AGGREGATE array_accum(anyelement) ( > SFUNC=array_append, > STYPE=anyarray, > INITCOND='{}' > ); > > And then you'd call it like so: > > select agent_name, array_accum(myval) from ary_values > group by agent_name; > > > I hope that helps. > > Ray. > > > > ------------------------------------------------------------------ > Raymond O'Donnell, Director of Music, Galway Cathedral, Ireland > rod@xxxxxx > Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals > ------------------------------------------------------------------ > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general