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 16:49:06
Message-ID: AANLkTimhprxVCjMELc5QhAwa279ek_PId5GacHnpukHO@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Ayala 2010-07-01 17:02:03 Re: crosstab: ERROR: invalid return type
Previous Message Diego Ayala 2010-07-01 16:44:19 Re: crosstab: ERROR: invalid return type