From: | Ray O'Donnell <ray(at)rodonnell(dot)ie> |
---|---|
To: | Ron <ronljohnsonjr(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: Converting row elements into a arrays? |
Date: | 2023-03-02 21:01:22 |
Message-ID: | 18b226e4-d018-c3b1-9dae-378bf67af346@rodonnell.ie |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 02/03/2023 20:58, Ron wrote:
> Postgresql 12.13
>
> Given the sample below, I'm looking for how to generate this output.
> It's like GROUP BY, but generating an array instead of an aggreate number.
> f1 | f2_array
> ----+---------
> 1 | {1,2,3}
> 2 | {1,2,3,4}
> 3 | {1,2}
Something like this (off the top of my head)? -
select f1, array_agg(f2) as f2_array group by f1;
Hope that helps (and that it's right!).
Ray.
>
> The ultimate goal is to somehow use pg_index.indkey to get column names
> from pg_attribute.
>
> create table foo (f1 int, f2 int);
> insert into foo values (1, 1);
> insert into foo values (1, 2);
> insert into foo values (1, 3);
> insert into foo values (2, 1);
> insert into foo values (2, 2);
> insert into foo values (2, 3);
> insert into foo values (2, 4);
> insert into foo values (3, 1);
> insert into foo values (3, 2);
>
> select * from foo order by f1, f2;
> f1 | f2
> ----+----
> 1 | 1
> 1 | 2
> 1 | 3
> 2 | 1
> 2 | 2
> 2 | 3
> 2 | 4
> 3 | 1
> 3 | 2
> (9 rows)
>
>
>
--
Raymond O'Donnell // Galway // Ireland
ray(at)rodonnell(dot)ie
From | Date | Subject | |
---|---|---|---|
Next Message | Ray O'Donnell | 2023-03-02 21:02:41 | Re: Converting row elements into a arrays? |
Previous Message | Ron | 2023-03-02 20:58:41 | Converting row elements into a arrays? |