J'ai un problème de fenêtre coulissante. spécifiquement, je ne sais pas où ma fenêtre devrait commencer et où elle devrait se terminer. Je connais la taille de mon intervalle/fenêtre.sql fenêtre coulissante - trouver la valeur maximale sur l'intervalle
J'ai besoin de trouver le début/la fin de la fenêtre qui offre le meilleur scénario (ou le pire, selon la façon dont vous le regardez).
ici est un ensemble de données exemple:
value | tstamp
100 | 2013-02-20 00:01:00
200 | 2013-02-20 00:02:00
300 | 2013-02-20 00:03:00
400 | 2013-02-20 00:04:00
500 | 2013-02-20 00:05:00
600 | 2013-02-20 00:06:00
500 | 2013-02-20 00:07:00
400 | 2013-02-20 00:08:00
300 | 2013-02-20 00:09:00
200 | 2013-02-20 00:10:00
100 | 2013-02-20 00:11:00
Disons que je sais que mon intervalle doit être 5 minutes. donc, j'ai besoin de connaître la valeur et les horodatages inclus dans l'intervalle de 5 minutes où la somme de «valeur» est le plus élevé. dans mon exemple ci-dessus, les lignes de '2013-02-20 00:04:00' à '2013-02-20 00:08:00' me donneraient une somme de 400 + 500 + 600 + 500 + 400 = 2400 , qui est la valeur la plus élevée sur 5 minutes dans ce tableau.
Je ne suis pas contre l'utilisation de plusieurs tables si nécessaire. mais j'essaie de trouver un "meilleur scénario" intervalle. les résultats peuvent aller dans un sens ou dans l'autre, à condition qu'ils soient nets. Si je reçois tous les points de données sur cet intervalle, cela fonctionne toujours. si je reçois les points de départ et de fin, je peux aussi les utiliser.
J'ai trouvé plusieurs problèmes de fenêtres glissantes pour SQL, mais je n'ai trouvé aucun où la taille de la fenêtre est le facteur connu, et le point de départ est inconnu.
Quels SGBDR utilisez-vous? –
J'utilise postgres, et je n'ai pas beaucoup d'autres options pour le moment. – jasonmclose
@jasonmclose: quelle version de PosgreSQL? – Quassnoi