Re: crosstab: ERROR: invalid return type

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

Entiendo, podrias probar sin ponerle las comillas doblesa la definiciones de
los parametros

AS lista(estado text, renglon text, cantidad text);

El 1 de julio de 2010 12:49, Cesar A <cesar(dot)carbonara(at)gmail(dot)com> escribió:

> Hola Diego.
>
> Nop, lo uno, ni lo otro:
>
> SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*)::text
> FROM consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002,
> agri02_002') AS lista("estado" text, "renglon" text, "cantidad" text);
> ERROR: invalid return type
> DETAIL: SQL rowid datatype does not match return rowid datatype.
>
> SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*) FROM
> consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002')
> AS lista("estado" text, "renglon" text, "cantidad" numeric);
> ERROR: invalid return type
> DETAIL: SQL rowid datatype does not match return rowid datatype.
>
>
> Me da la impresión que tiene que ver con la cantidad de columnas devueltas
> y las definidas, pero, justo lo que me interesa es "pivotear" la consulta
> original, donde me quede la primera columna los estados, y el resto los
> renglones
>
>
> El 1 de julio de 2010 12:14, Diego Ayala <netdiego81(at)gmail(dot)com> escribió:
>
> deberias castear el count(*), ya que en la ultima parte estas definiendo
>> cantidad de tipo text, puedes hacer count(*)::text, y deberia de funcionar..
>>
>> El 1 de julio de 2010 12:39, Cesar A <cesar(dot)carbonara(at)gmail(dot)com>escribió:
>>
>> Saludos
>>>
>>> Disculpen ustedes, pero no doy pie con bola en una consulta a crosstab:
>>>
>>> Normalita:
>>>
>>> SELECT est_002, agri02_002, count(*) FROM consulta_agri04 GROUP BY
>>> agri02_002, est_002 ORDER BY est_002, agri02_002; est_002 |
>>> agri02_002 | count
>>> ----------+------------------------+-------
>>> Mérida | CACAO | 83
>>> Mérida | CAFE | 169
>>> Mérida | CAÑA | 68
>>> Mérida | CEREALES Y LEGUMINOSAS | 421
>>> Mérida | FRUTALES | 746
>>> Mérida | HORTALIZAS | 1277
>>> Mérida | ORNAMENTALES | 41
>>> Mérida | RAICES Y TUBERCULOS | 484
>>> Táchira | CACAO | 12
>>> Táchira | CAFE | 29
>>> Táchira | CAÑA | 1
>>> Táchira | CEREALES Y LEGUMINOSAS | 310
>>> Táchira | FRUTALES | 209
>>> Táchira | HORTALIZAS | 451
>>> Táchira | RAICES Y TUBERCULOS | 222
>>> Trujillo | CAFE | 26
>>> Trujillo | CAÑA | 20
>>> Trujillo | CEREALES Y LEGUMINOSAS | 97
>>> Trujillo | FRUTALES | 174
>>> Trujillo | HORTALIZAS | 361
>>> Trujillo | RAICES Y TUBERCULOS | 127
>>> (21 filas)
>>>
>>>
>>> Con crosstab:
>>>
>>> SELECT * FROM public.crosstab('SELECT est_002, agri02_002, count(*) FROM
>>> consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002')
>>> AS lista("estado" text, "renglon" text, "cantidad" text);
>>> ERROR: invalid return type
>>> DETAIL: SQL rowid datatype does not match return rowid datatype.
>>>
>>>
>>> Creo que tengo dudas conceptuales... Cómo es la cosa?
>>>
>>> Gracias
>>>
>>> --
>>> --
>>> 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
>>
>
>
>
> --
> --
> 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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Cesar A 2010-07-01 17:34:11 Re: crosstab: ERROR: invalid return type
Previous Message Cesar A 2010-07-01 16:49:06 Re: crosstab: ERROR: invalid return type