From: | Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com> |
---|---|
To: | Cesar A <cesar(dot)carbonara(at)gmail(dot)com> |
Cc: | Diego Ayala <netdiego81(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: crosstab: ERROR: invalid return type |
Date: | 2010-07-02 14:16:11 |
Message-ID: | AANLkTil0kZlQAQJwBkrcqSKkTChf7znIQriFtStmAEz0@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 2 de julio de 2010 09:07, Cesar A <cesar(dot)carbonara(at)gmail(dot)com> escribió:
> Bueno... luego de revisar y hacer varias pruebas, algo me salió.
>
> Revisando el último ejemplo de la doc[0], hice mi prueba:
>
> SELECT * FROM public.crosstab
> (
> 'SELECT est_002, agri02_002, count(*)::numeric FROM consulta_agri04
> GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002',
> 'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002'
> ) AS lista(estado text, renglon1 text, renglon2 text, renglon3 text,
> renglon4 text, renglon5 text, renglon6 text, renglon7 text, renglon8 text);
>
> de la que obtuve:
>
> estado | renglon1 | renglon2 | renglon3 | renglon4 | renglon5 | renglon6 |
> renglon7 | renglon8
>
> ----------+----------+----------+----------+----------+----------+----------+----------+----------
> Mérida | 83 | 169 | 68 | 421 | 746 | 1277
> | 41 | 484
> Táchira | 12 | 29 | 1 | 310 | 209 | 451
> | | 222
> Trujillo | | 26 | 20 | 97 | 174 | 361
> | | 127
> (3 filas)
>
> Según en el ejemplo, la definición de las columnas ya se conoce, pero y sí
> quisiéramos que los títulos de las columnas fueran parte de la bondad del
> crosstab? ya ven que mi:
>
> SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002;
> agri02_002
> ------------------------
> CACAO
> CAFE
> CAÑA
> CEREALES Y LEGUMINOSAS
> FRUTALES
> HORTALIZAS
> ORNAMENTALES
> RAICES Y TUBERCULOS
> (8 filas)
>
>
>
Solo que definas las columnas con los títulos de los valores que devuelve la
consulta de arriba.
SELECT * FROM public.crosstab
(
'SELECT est_002, agri02_002, count(*)::numeric FROM consulta_agri04
GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002',
'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002'
) AS lista(estado text, cacao text, cafe text, "caña" text, "cereales y
leguminosas" text, frutales text, hortalizas text, ornamentales text,
"raices y tuberculos" text);
From | Date | Subject | |
---|---|---|---|
Next Message | Cesar A | 2010-07-02 15:06:23 | Re: crosstab: ERROR: invalid return type |
Previous Message | Alexander Ochoa Agüero | 2010-07-02 14:14:39 | acceso desde pgadmin |