Hola a todos y buen día, Usando array_agg he tenido el siguiente problema: Tengo una FAUNA con una columna PESCA y otra COD_ESPECIE, por ejemplo:
PESCA COD_ESPECIE 1 10156 2 10156 3 10156 4 10152 5 10156 6 10522 6 10156 6 10152 . Mi idea era obtener un listado en el que cada especie tuviera anexo las pescas en las que apareciera, es decir: ESPECIE Pescas 10156 1,2,3,5,6 10152 4,6 10522 6 Para ello, después de consultar por ahí un poco, descubrí que se podía hacer con una consulta como esta: select especie as "Especie", array_to_string(array_agg(pesca),',') as "Lances en los que aparece" from fauna group by especie order by especie; Que efectivamente me hace perfectamente la tarea. Ahora bien, en otra tabla de ESPECIES con las columnas COD_ESPECIE y ESPECIE tal como: COD_ESPECIE ESPECIE 10156 E. encrasicolus 10152 S. pilchardus 10522 B. boops La idea es meterla en la consulta para que en lugar del código de la especie me aparezca su nombre, algo como: ESPECIE Pescas E. encrasicolus 1,2,3,5,6 S. pilchardus 4,6 B. boops 6 Eso lo hago mediante: select especies.especie as "Especie", array_to_string(array_agg(pesca),' ') as "Lances en los que aparece" from especies inner join fauna on(especies.cod_especie=fauna.especie) group by especies.especie order by especies.especie; Pero el problemón surge porque la nueva columna proveniente del array_arg sale desordenada en este caso, mientras que sin el cruce con la tabla de especies salía perfectamente ordenada. ¿Cómo se podría cambiar este comportamiento? Un saludo y gracias a todos. -- ----------------------------------------- Jorge Tornero Núñez Centro Oceanográfico de Cádiz Instituto Español de Oceanografía Puerto Pesquero - Muelle de Levante, s/n 11006 Cádiz - España Tel. +34 956294189 Fax. +34 956294232 www.ieo.es