El 2 de julio de 2010 09:07, Cesar A <cesar.carbon...@gmail.com> escribió:
> Bueno... luego de revisar y hacer varias pruebas, algo me salió. > > Revisando el último ejemplo de la doc[0], hice mi prueba: > > SELECT * FROM public.crosstab > ( > 'SELECT est_002, agri02_002, count(*)::numeric FROM consulta_agri04 > GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002', > 'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002' > ) AS lista(estado text, renglon1 text, renglon2 text, renglon3 text, > renglon4 text, renglon5 text, renglon6 text, renglon7 text, renglon8 text); > > de la que obtuve: > > estado | renglon1 | renglon2 | renglon3 | renglon4 | renglon5 | renglon6 | > renglon7 | renglon8 > > ----------+----------+----------+----------+----------+----------+----------+----------+---------- > Mérida | 83 | 169 | 68 | 421 | 746 | 1277 > | 41 | 484 > Táchira | 12 | 29 | 1 | 310 | 209 | 451 > | | 222 > Trujillo | | 26 | 20 | 97 | 174 | 361 > | | 127 > (3 filas) > > Según en el ejemplo, la definición de las columnas ya se conoce, pero y sí > quisiéramos que los títulos de las columnas fueran parte de la bondad del > crosstab? ya ven que mi: > > SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002; > agri02_002 > ------------------------ > CACAO > CAFE > CAÑA > CEREALES Y LEGUMINOSAS > FRUTALES > HORTALIZAS > ORNAMENTALES > RAICES Y TUBERCULOS > (8 filas) > > > Solo que definas las columnas con los títulos de los valores que devuelve la consulta de arriba. SELECT * FROM public.crosstab ( 'SELECT est_002, agri02_002, count(*)::numeric FROM consulta_agri04 GROUP BY agri02_002, est_002 ORDER BY est_002, agri02_002', 'SELECT DISTINCT agri02_002 FROM consulta_agri04 ORDER BY agri02_002' ) AS lista(estado text, cacao text, cafe text, "caña" text, "cereales y leguminosas" text, frutales text, hortalizas text, ornamentales text, "raices y tuberculos" text);