Tengo una tabla con el siguiente esquema, y necesito definir una consulta que pueda agrupar datos en función de intervalos de tiempo ( Ej. Registros por minuto ) y luego proporcionar la suma de los cambios en el SnapShotValue desde el grupo anterior. En la actualidad, SnapShotValue siempre se incrementa, por lo que solo necesito la suma de las diferencias. ¿Alguien puede ayudar con una consulta SQL Server T-SQL que podría hacer esto? Estoy abierto a cambiar el esquema, pero esto es lo que tengo actualmente.
Esquema
CaptureTime (datetime)
SnapShotValue (int)
Data de muestra
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
Resultado de consulta deseado
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
fuente
Estoy un poco confundido por el tercer ejemplo, ¿se supone que esto es 1325? Según los requisitos de capturar la suma de los valores de la instantánea, la siguiente consulta debería obtener lo que busca.
fuente
La siguiente es la traducción de la respuesta aceptada a PostgreSQL (elegí el 1 de enero de 2000, como la fecha base. Cámbielo a una fecha anterior si sus datos son anteriores):
fuente