Re: array question
От | Whit Armstrong |
---|---|
Тема | Re: array question |
Дата | |
Msg-id | 8ec76080910090941u6f26998ficdf06fe61bb826d8@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: array question (Raymond O'Donnell <rod@iol.ie>) |
Ответы |
Re: array question
|
Список | pgsql-general |
That's exactly what I needed. Thanks very much! -Whit On Fri, Oct 9, 2009 at 12:29 PM, Raymond O'Donnell <rod@iol.ie> 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@iol.ie > Galway Cathedral Recitals: http://www.galwaycathedral.org/recitals > ------------------------------------------------------------------ >
В списке pgsql-general по дате отправления: