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
r...@rodonnell.ie



Reply via email to