| 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: | Whole Thread | Raw Message | 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? |