2017-05-03 2 views
0

J'ai une table avec des données et je veux remplir les espaces de dates avec generate_series avec PostgreSQL mais je ne peux pas le résoudre. Comment puis-je joindre ma table au résultat de generate_series? Ma tentative est la suivante:Utilisation de la classe generate_series dans la requête PostgreSQL

SELECT series AS time, 
     data 
FROM generate_series('2012-11-11', '2012-11-12', '2 minutes'::interval) AS series 
LEFT JOIN data_table ON data_table.time = series 

Dans cette plage de dates, le résultat est:

   TIME    DATA 
     2012.11.11. 13:00:06 | data 1 
     2012.11.11. 13:08:06 | data 2 

Mon but serait semblable à ceci:

  TIME   DATA 
    2012.11.11. 13:00:06 | data 1 
    2012.11.11. 13:02:06 | NULL 
    2012.11.11. 13:06:06 | NULL 
    2012.11.11. 13:08:06 | data 2 
    2012.11.11. 13:10:06 | NULL 
    2012.11.11. 13:12:06 | NULL 
    ... 

Ergo toute la table remplir avec rangées de temps avec intervalle de 2 minutes. Comment puis-je atteindre cet objectif?

Répondre

0

Je pense que votre requête devrait fonctionner. Je donnerais à la valeur un nom de colonne:

SELECT g.series AS time, t.data 
FROM generate_series('2012-11-11', '2012-11-12', '2 minutes'::interval) AS g(series) LEFT JOIN 
     data_table t 
     ON t.time = g.series; 
+0

Merci beaucoup! Ça a bien marché! – bummm26