Re: Set Returning Functions and array_agg()

From: Jasen Betts <jasen(at)xnet(dot)co(dot)nz>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: Set Returning Functions and array_agg()
Date: 2013-04-25 10:39:31
Message-ID: klb153$iuj$1@gonzo.reversiblemaps.ath.cx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 2013-04-24, Stephen Scheck <singularsyntax(at)gmail(dot)com> wrote:
> --f46d043c810aa794a404db21f464
> Content-Type: text/plain; charset=ISO-8859-1
>
> Possibly due to my lack of thorough SQL understanding. Perhaps there's a
> better way of doing what I'm ultimately trying to accomplish, but still the
> question remains - why does this work:
>
> pg_dev=# select unnest(array[1,2,3]);
> unnest
> --------
> 1
> 2
> 3
> (3 rows)
>
> But not this:
>
> pg_dev=# select array_agg(unnest(array[1,2,3]));
> ERROR: set-valued function called in context that cannot accept a set

the parser doesn't understand it for the reason given

same as it doesn't understand this.

select avg(generate_series(1,3));

but it does understand this:

select avg(a) from generate_series(1,3) as s(a);

and this:

select array_agg(i) from unnest(array[1,2,3])) as u(i);

--
⚂⚃ 100% natural

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Fabrízio de Royes Mello 2013-04-25 11:48:09 Re: custom session variables?
Previous Message jesse.waters 2013-04-25 10:13:32 Re: pgdump error "Could not open file pg_clog/0B8E: No such file or directory"