У меня есть таблица со следующей схемой, и мне нужно определить запрос, который может группировать данные на основе интервалов времени ( например, записей в минуту ), а затем предоставлять сумму изменений в SnapShotValue со времени предыдущей группы. В настоящее время SnapShotValue всегда увеличивается, поэтому мне нужна только сумма разностей. Может ли кто-нибудь помочь с запросом SQL Server T-SQL, который может сделать это? Я открыт для изменения схемы, но это то, что у меня сейчас есть.
схема
CaptureTime (datetime)
SnapShotValue (int)
Пример данных
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
Желаемый результат запроса
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
источник
Меня немного смущает третий пример, это должно быть 1325? Исходя из требований сбора суммы значений моментальных снимков, приведенный ниже запрос должен получить то, что вам нужно.
источник
Ниже приведен перевод принятого ответа в PostgreSQL (в качестве базовой даты я выбрал 1 января 2000 года. Измените его на более раннюю, если ваши данные старше этой):
источник