J'ai une table comme la suivante:Postgres tableau croisé dynamique avec crosstab
date value 1 value 2 value 3
----------------------------------------------------
01/01/2017 263 7 222
02/01/2017 275 -9 209
03/01/2017 331 -9 243
.
.
.
Je veux créer cet autre dans Postgres:
01/01/2017 02/01/2017 03/01/2017
value 1 263 275 331
value 2 7 -9 -9
value 3 222 209 243
Mais mon problème est que je ne sais pas comment beaucoup de dates je vais avoir, donc je dois utiliser quelque chose comme ceci:
SELECT * FROM crosstab(
$$ SELECT value1, date FROM myTable ORDER BY 1 $$,
$$ SELECT m FROM generate_series((select min(date) from myTable) ,(select max(date) from myTable), '1 month'::interval) m $$
) AS (
".." date, ".." date, ".." date, ".." date
);
Quelqu'un peut-il m'aider? Merci.
'Je ne sais pas combien de dates j'aurai ', Donc, si vous avez dit 1000 dates, alors vous attendez 1000 colonnes dans le résultat? –
Oui, mais je n'aurai jamais 1000 colonnes, car le nombre maximum de dates sera de 12, une pour chaque mois de l'année. Dans l'exemple, 'dateformat' sera mm/jj/aaaa. – dbz