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