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-01 17:34:11
Message-ID: AANLkTiklgxnrMAKioqMK9bFlo1olO40mUQ0P9xP8EIgg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Y las demás columnas, correspondientes a cada renglón...

El 1 de julio de 2010 12:32, Diego Ayala <netdiego81(at)gmail(dot)com> escribió:

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

--
--
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 Miguel Angel Hernandez Moreno 2010-07-01 17:38:55 Re: Postgres Contrib
Previous Message Diego Ayala 2010-07-01 17:02:03 Re: crosstab: ERROR: invalid return type