El día 11 de noviembre de 2010 08:38, Jorge Tornero
<[email protected]> escribió:
> 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;
>

Hay un contrib (intarray) que te permite ordenar eficientemente lo que
te devuelve
array_agg. Mirá http://www.postgresql.org/docs/current/static/intarray.html

La función sort(int[]) es la que puede ser que necesites.

Saludos!


-- 
              Emanuel Calvo Franco
        DBA | www.emanuelcalvofranco.com.ar
Curso a distancia Nivel 1 Admin Postgres:
    http://www.postgresql-es.org/node/525
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a