Mam tabelę z następującym schematem i muszę zdefiniować zapytanie, które może grupować dane na podstawie przedziałów czasu ( np. Rekordów na minutę ), a następnie podać sumę zmian w SnapShotValue od poprzedniej grupy. Obecnie SnapShotValue zawsze zwiększa, więc potrzebuję tylko sumy różnic. Czy ktoś może pomóc z zapytaniem SQL Server T-SQL, który może to zrobić? Jestem otwarty na zmianę schematu, ale właśnie to mam.
Schemat
CaptureTime (datetime)
SnapShotValue (int)
Przykładowe dane
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
Pożądany wynik zapytania
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
źródło
Jestem trochę zdezorientowany trzecim przykładem, czy to ma być 1325? W oparciu o wymagania dotyczące przechwytywania sumy wartości migawek poniższe zapytanie powinno uzyskać to, czego szukasz.
źródło
Poniżej znajduje się tłumaczenie zaakceptowanej odpowiedzi na PostgreSQL (jako datę bazową wybrałem 1 stycznia 2000 r. Zmień ją na wcześniejszą, jeśli Twoje dane są starsze):
źródło