Ich habe eine Tabelle von Auto-IDs - id
und deren Batteriestand - battery
, die im Zehn-Minuten-Intervallen gesammelt werden.Mittlere Zeit, die zwischen den Aufzeichnungen
Mein Ziel ist die folgende Ausgabe: die durchschnittliche Zeit, die Batterien brauchen, um von 100 auf 0 zu fallen. Mein Ziel ist es, den globalen Mittelwert über alle Fahrzeug-IDs zu nehmen, dh die mittlere Zeitdifferenz zwischen battery = 100
und battery = 0
für alle eindeutigen IDs. Ein kleiner Vorbehalt ist, dass die 0 nach die 100 kommen muss, mit anderen Worten, ich möchte Ladezeiten ausschließen (wenn 100 nach einer 0 kämen).
Wie würde man eine solche Abfrage in psql
schreiben?
ist hier eine Probe der Daten von einem Auto:
id| time| battery
54 | 2017-12-12 09:50:04.402775+00 | 100
54 | 2017-12-12 09:40:04.618926+00 | 100
54 | 2017-12-12 09:30:04.11399+00 | 100
54 | 2017-12-12 09:20:03.906716+00 | 100
54 | 2017-12-12 09:10:03.955133+00 | 100
54 | 2017-12-12 09:00:04.678508+00 | 100
54 | 2017-12-12 08:50:03.733471+00 | 100
54 | 2017-12-12 08:40:03.65688+00 | 100
54 | 2017-12-12 08:30:04.260608+00 | 100
54 | 2017-12-12 08:20:03.98387+00 | 100
54 | 2017-12-12 08:10:04.164129+00 | 98
54 | 2017-12-12 08:00:04.597976+00 | 98
54 | 2017-12-12 07:50:04.5| 98
54 | 2017-12-12 07:40:04.441531+00 | 98
54 | 2017-12-12 07:30:04.310876+00 | 98
54 | 2017-12-12 07:20:04.317241+00 | 98
54 | 2017-12-12 07:10:03.856432+00 | 67
54 | 2017-12-12 07:00:03.628862+00 | 67
54 | 2017-12-12 06:50:03.868495+00 | 67
54 | 2017-12-12 06:40:04.490324+00 | 67
54 | 2017-12-12 06:30:03.83739+00 | 67
54 | 2017-12-12 06:20:03.817014+00 | 67
54 | 2017-12-12 06:10:04.081174+00 | 29
54 | 2017-12-12 06:00:04.178765+00 | 29
data_type
--------------------------
integer
timestamp with time zone
integer
Ja, das stimmt. Danke, dass du das notiert hast. Es ist möglich, sich teilweise aufzuladen, und daher sollten alle Fälle, in denen eine Erhöhung der Gebühr stattfindet, ausgeschlossen werden. Ich werde einen neuen Thread starten –