Re: ORDER BY elements in ARRAY
Guillaume Lelarge <guillaume@lelarge.info>
From: Guillaume Lelarge <guillaume@lelarge.info>
To: Andreas Joseph Krogh <andreas@visena.com>
Cc: pgsql-sql@lists.postgresql.org
Date: 2024-08-27T11:44:02Z
Lists: pgsql-sql
Hi, Le mar. 27 août 2024 à 13:23, Andreas Joseph Krogh <andreas@visena.com> a écrit : > Hi, I have this query: > > > > SELECT > comp.entity_id as company_id, comp.companyname AS company_name > , ARRAY( > SELECT > (pers.entity_id > , pers.firstname > , pers.lastname > )::PersonTypeTest > FROM onp_crm_person AS pers > WHERE pers.relation_id = comp.entity_id > ) as person_array > > FROM onp_crm_relation comp > ORDER BY person_array > ; > > > > And I'd like to ORDER BY (conceptually) lower(pers.firstname), > lower(pers.lastname). I realize there might be more than 1 person in the > array, so I'd like to order by “firstname and lastname of first element, > the same for second etc.” > > > > Any way to do this? > > array_agg might be what you're looking for, but you'll have to extract the subquery, and transform it to a join on the main query. Regards. -- Guillaume.