Mit Postgres 9.3 versuche ich die Anzahl der zusammenhängenden Tage eines bestimmten Wettertyps zu zählen. Wenn wir annehmen, haben wir eine regelmäßige Zeitreihe und Wetterbericht:Postgres windowing (Festlegung zusammenhängender Tage)
date|weather
"2016-02-01";"Sunny"
"2016-02-02";"Cloudy"
"2016-02-03";"Snow"
"2016-02-04";"Snow"
"2016-02-05";"Cloudy"
"2016-02-06";"Sunny"
"2016-02-07";"Sunny"
"2016-02-08";"Sunny"
"2016-02-09";"Snow"
"2016-02-10";"Snow"
Ich mag etwas die zusammenhängenden Tage aus dem gleichen Wetter zählen. Die Ergebnisse sollen in etwa so aussehen:
date|weather|contiguous_days
"2016-02-01";"Sunny";1
"2016-02-02";"Cloudy";1
"2016-02-03";"Snow";1
"2016-02-04";"Snow";2
"2016-02-05";"Cloudy";1
"2016-02-06";"Sunny";1
"2016-02-07";"Sunny";2
"2016-02-08";"Sunny";3
"2016-02-09";"Snow";1
"2016-02-10";"Snow";2
Ich habe auf diesem meinen Kopf hämmern worden für eine Weile versucht, Windowing-Funktionen zu verwenden. Zuerst scheint es, als wäre es kein Kinderspiel, aber dann fand ich heraus, es ist viel schwieriger als erwartet.
Hier ist, was ich versucht habe ...
Select date, weather, Row_Number() Over (partition by weather order by date)
from t_weather
Wäre es einfach leichter, besser sein, die aktuelle Zeile zur nächsten zu vergleichen? Wie würden Sie das tun, während Sie eine Zählung beibehalten? Irgendwelche Gedanken, Ideen oder sogar Lösungen wären hilfreich! -Kip
konnte nicht Sie einfach tun, um eine Zählung (Datum) Gruppe von Wetter – hd1