Die Daten, mit denen ich arbeite, haben keinen Primärschlüssel, stattdessen werden sie nach einem TMC-Wert und einem Datumswert gruppiert. Was ich versuche zu tun, ist 5 Minuten Epochenwerte zu nehmen und sie in eine 15-Minuten-Epoche zu kombinieren, um durchschnittlich drei Datensätze gleichzeitig. Also werden die Epochen 0, 1, 2 zusammen gemittelt, um einen neuen Rekord zu bekommen, dann 3,4,5 und so weiter. Hier ist eine Beispieltabelle. Ich weiß nicht, wie dies korrekt zu formatieren:Nimmt einen gleitenden Durchschnitt von drei Datensätzen gleichzeitig mit zwei Gruppen nach Werten auf
TMC DATE EPOCH TRAVEL_TIME_ALL_VEHICLES
113N04415 1012016 0 228
113N04415 1012016 1 228
113N04415 1012016 2 222
113N04415 1012016 3 224
113N04415 1012016 4 229
113N04415 1012016 5 223
Ich glaube, ich bin in der Nähe mit diesem Code, wie es für den ersten Datensatz funktioniert, aber nicht für die zweite:
select tmc, date, avg(Travel_TIME_ALL_VEHICLES) AS TRAVEL_avg
from (select I40_2016_ALL.*,
row_number() over (order by TMC, date, epoch) as rn
from I40_2016_ALL) I40_2016_ALL
where tmc = '113n04415' and date = '1012016'
group by TMC, DATE, floor((rn - 1)/3)
ORDER BY TMC, DATE
Bitte Kennzeichnen Sie Ihre Frage mit dem RDBMS, das Sie tatsächlich verwenden. MySQL implementiert noch keine Fensterfunktion wie 'row_number' afaik. –
RDBMS? Ich benutze Microsoft SQL Server Management Studio. –