Re: crosstab: ERROR: invalid return type

From: Cesar A <cesar(dot)carbonara(at)gmail(dot)com>
To: Diego Ayala <netdiego81(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: crosstab: ERROR: invalid return type
Date: 2010-07-02 14:07:39
Message-ID: AANLkTin9sneL2pmmWAECPDwy2ltu8vrrA0Lur8p_aAjp@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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)

me devuelve los que podrían ser los títulos de las columnas. De ésta manera,
quedaría acomodar en alguna función para que se así...

Por ahora, está resuelto el problema... ahora, a trabajar una función para
mejorar la cosa. Gracias!

[0]http://www.postgresql.org/docs/8.3/interactive/tablefunc.html

El 2 de julio de 2010 07:03, Diego Ayala <netdiego81(at)gmail(dot)com> escribió:

> Cesar, te paso un ejemplo mio, que funciona perfectamente.. podrias hacer
> algo parecido...
> Espero te sirva...
>
> El 2 de julio de 2010 07:29, Diego Ayala <netdiego81(at)gmail(dot)com> escribió:
>
>
>>
>> El 1 de julio de 2010 23:34, Cesar A <cesar(dot)carbonara(at)gmail(dot)com>escribió:
>>
>> así da un error de sintaxis
>>>
>>> El 2 de julio de 2010 13:26, Gilberto Castillo Martínez <
>>> gilberto(dot)castillo(at)etecsa(dot)cu> escribió:
>>>
>>>>
>>>>
>>>> El jue, 01-07-2010 a las 13:04 -0430, Cesar A escribió:
>>>>
>>>> > No, nada.
>>>> >
>>>> >
>>>> > Por si hay dudas con el resultado deseado:
>>>> >
>>>> >
>>>> > est_002 |CACAO |CAFE |CAÑA
>>>> > Mérida |83 |169 |68
>>>> > Táchira |12 |29 |1
>>>> > Trujillo | |26 |20
>>>>
>>>> >
>>>> >
>>>> >
>>>> > AS lista(estado text, renglon text, cantidad text);
>>>>
>>>>
>>>> Disculpe, si me perdí algo y ya lo probaron .... si los resultados van a
>>>> ser convertidos en texto
>>>>
>>>>
>>>> AS lista(estado::text, renglon::text, cantidad::text);
>>>>
>>>> >
>>>> --
>>>> Saludos,
>>>>
>>>> Tip: El progreso es nuestra independencia tecnológica.
>>>>
>>>> “Trabajamos por una empresa mejor”
>>>>
>>>> _______________________________________________________
>>>>
>>>> Msc. Ing. Gilberto Castillo.
>>>> Presidencia. ETECSA.
>>>> Teléfono: 266-8558 Fax (537) 207-8931.
>>>> Edificio Beijing, 5to piso oficina 526. MTC.
>>>> Miramar, La Habana, Cuba.
>>>> _______________________________________________________
>>>>
>>>> ---
>>>> This message was processed by Kaspersky Mail Gateway 5.6.28/RELEASE
>>>> running at host imx2.etecsa.cu
>>>> Visit our web-site: <http://www.kaspersky.com>, <
>>>> http://www.viruslist.com>
>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> Sí no eres parte de la solución... eres parte del problema.
>>> Les Luthiers
>>> --
>>> Cesar A. Carbonara R.
>>> C.I. Nº V.11.952.572
>>> --
>>> Usuario Linux 377997
>>> www.gulmer.org.ve
>>> Debian... todo lo que siempre has querido
>>>
>>
>>
>>
>> --
>> Diego Ayala
>>
>
>
>
> --
> Diego Ayala
>

--
--
Sí no eres parte de la solución... eres parte del problema.
Les Luthiers
--
Cesar A. Carbonara R.
C.I. Nº V.11.952.572
--
Usuario Linux 377997
www.gulmer.org.ve
Debian... todo lo que siempre has querido

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alexander Ochoa Agüero 2010-07-02 14:14:39 acceso desde pgadmin
Previous Message Alejandro Ojeda Diaz 2010-07-02 13:24:50 Buenas prácticas de desarrollo pgsql