Search Postgresql Archives

Re: array question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux