Re: crosstab: ERROR: invalid return type

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);

In response to

Responses

Browse pgsql-es-ayuda by date

  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