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 <netdieg...@gmail.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.carbon...@gmail.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 <netdieg...@gmail.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.carbon...@gmail.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