[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [postgresql-it] pivot table



Ciao Luca,

ecco i comandi che ho usato (peraltro semplici e simili ai tuoi):

CREATE TABLE t014060  (ymd date, ctemp integer);

INSERT INTO t014060
       SELECT *, ceil(random()*100)::integer
       FROM generate_series('2003-01-01'::date,'2003-12-31','1 days')
;

\copy (SELECT * FROM crosstab('SELECT ''t014060''::varchar(10), ymd , ctemp FROM t014060 ORDER BY 1,2') AS ( staz varchar(10), c_2003_01_01 integer, ... TUTTA LA PAPPARDELLA ..., c_2003_12_31 integer)) TO t014060.csv WITH CSV HEADER DELIMITER ';'

come detto ''t014060''::varchar(10) è racchiuso tra due coppie di singoli apici


Aperto con libre office copiato e trasposto per confrontarlo direttamente col db, torna.

Sicuro di avere le temperature in integer? magari hai bisogno di un cast

$ psql --version
psql (PostgreSQL) 8.4.11



PS se al posto di 2003 metti ad es. 2012 (bisestile) i valori diventano 366 ;-)

ciao Stefano




Il giorno 04 luglio 2012 15:57, Luca Delucchi <lucadeluge@xxxxxxxxx> ha scritto:
Il 03 luglio 2012 15:25, stefano romanelli
<romanelli.stefano@xxxxxxxxx> ha scritto:
> Ciao,

ciao

>
> crosstab è nei contrib --> tablefunc , prima non avevo controllato ... scusa
>

eh mi ero dimenticato di importare le funzioni

> chi lega la tabella anagrafica delle stazioni a quelle con data e
> temperatura?
>

il nome della tabella

> se t014060 è il nome di una stazione e ymd è la data allora:
>
> 'select ''t014060''::varchar(10) (sono doppi apici, non virgolette), ymd,
> ctemp from t014060 order by 1,2' AS (stazione varchar(10), c_2003_01_01
> integer, c_2003_01_02 intege...)
>
> altrimenti metti l'id che lega anagrafica a tabella dati con il type
> appropriato.
>

ho provato questa

SELECT * from crosstab('select "t014060"::varchar(10), ymd, ctemp from
t014060 order by 1,2') AS (stazione varchar(10), c_2003_01_01 integer,
...)

ma mi ritorna

ERROR:  return and sql tuple descriptions are incompatible

> Se vuoi in privato ti mando i comandi con i quali ho fatto la prova
>

si grazie, forse puoi spedirli anche in lista così se qualcuno ha lo
stesso problema può darci un'occhiata

> ciao
>


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org
_______________________________________________
Postgresql-it mailing list
Postgresql-it@xxxxxxxxxxxxx
http://lists.psql.it/mailman/listinfo/postgresql-it