Hallo,
ich habe hier eine Tabelle (Größe 16 GB) mit Verkehrsdaten. Jede Zeile in dieser Tabelle gibt den Wert der Messung für eine Minute an.
Zur Normalisierung benötige ich nun den Maximalwert. Klar - erster Ansatz mit MAX(..) geht auch. Das Problem ist jedoch, dass ich dabei genau die Peeks erwische und die Daten somit über einen Zeitraum von 5 Minuten mitteln möchte.
Erster Ansatz: SELECT * FROM Daten GROUP BY UNIX_TIMESTAMP(DATETIME) DIV 300
Auf den ersten Blick scheint dies auch zu gehen und baut Gruppe, welche von Minuten 25 bis 30, 30 bis 35, 35 bis 40 ... gehen.
Das ist zwar besser als die 1-Minuten Päckchen, aber noch nicht das was ich brauche.
Hat jemand eine Idee wie ich das Zeitfenster über die Daten wandern lassen kann. Also Päckchen von Minute 25 bis 30, 26 bis 31, 27 bis 32.
Mir ist bewusst, dass das bei 16 Gig sehr lang dauert, es wird aber nur einmal alle paar Wochen abgefragt werden.
ich habe hier eine Tabelle (Größe 16 GB) mit Verkehrsdaten. Jede Zeile in dieser Tabelle gibt den Wert der Messung für eine Minute an.
Zur Normalisierung benötige ich nun den Maximalwert. Klar - erster Ansatz mit MAX(..) geht auch. Das Problem ist jedoch, dass ich dabei genau die Peeks erwische und die Daten somit über einen Zeitraum von 5 Minuten mitteln möchte.
Erster Ansatz: SELECT * FROM Daten GROUP BY UNIX_TIMESTAMP(DATETIME) DIV 300
Auf den ersten Blick scheint dies auch zu gehen und baut Gruppe, welche von Minuten 25 bis 30, 30 bis 35, 35 bis 40 ... gehen.
Das ist zwar besser als die 1-Minuten Päckchen, aber noch nicht das was ich brauche.
Hat jemand eine Idee wie ich das Zeitfenster über die Daten wandern lassen kann. Also Päckchen von Minute 25 bis 30, 26 bis 31, 27 bis 32.
Mir ist bewusst, dass das bei 16 Gig sehr lang dauert, es wird aber nur einmal alle paar Wochen abgefragt werden.
Kommentar