Ich habe eine Tabelle mit dem folgenden Schema und muss eine Abfrage definieren, die Daten basierend auf Zeitintervallen (z . B. Datensätze pro Minute ) gruppieren und dann die Summe der Änderungen am SnapShotValue seit der vorherigen Gruppe bereitstellen kann. Gegenwärtig erhöht sich der SnapShotValue immer, sodass ich nur die Summe der Unterschiede benötige. Kann jemand bei einer SQL Server T-SQL-Abfrage helfen, die dies tun könnte? Ich bin offen für Änderungen am Schema, aber das ist es, was ich derzeit habe.
Schema
CaptureTime (datetime)
SnapShotValue (int)
Beispieldaten
1 Jan 2012 00:00:00, 100
1 Jan 2012 00:00:30, 125
1 Jan 2012 00:01:00, 200
1 Jan 2012 00:01:30, 300
1 Jan 2012 00:02:15, 400
1 Jan 2012 00:02:30, 425
1 Jan 2012 00:02:59, 500
Gewünschtes Abfrageergebnis
1 Jan 2012 00:01:00, 225 -- Sum of all captured data changes up to the 1 minute mark
1 Jan 2012 00:02:00, 500 -- Sum of all captured data changes up to the 2 minute mark
1 Jan 2012 00:03:00, 125 -- Sum of all captured data changes up to the 3 minute mark
quelle
Das dritte Beispiel dort verwirrt mich ein wenig. Soll das 1325 sein? Basierend auf den Anforderungen zum Erfassen der Summe der Snapshot-Werte sollte die folgende Abfrage das erhalten, wonach Sie suchen.
quelle
Das Folgende ist die Übersetzung der akzeptierten Antwort in PostgreSQL (ich habe den 1. Januar 2000 als Basisdatum gewählt. Ändern Sie es auf ein früheres Datum, wenn Ihre Daten älter als dieses sind):
quelle