Saya memiliki tabel dengan skema berikut, dan saya perlu mendefinisikan kueri yang dapat mengelompokkan data berdasarkan interval waktu ( mis. Catatan per menit ) dan kemudian memberikan jumlah perubahan ke SnapShotValue sejak grup sebelumnya. Saat ini, SnapShotValue selalu bertambah jadi saya hanya perlu jumlah perbedaan. Adakah yang bisa membantu dengan permintaan SQL Server T-SQL yang mungkin melakukan ini? Saya terbuka untuk mengubah skema, tetapi inilah yang saya miliki saat ini.
Skema
CaptureTime (datetime)
SnapShotValue (int)
Contoh data
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
Hasil Permintaan yang Diinginkan
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
sumber
Saya sedikit bingung dengan contoh ke-3 di sana, apakah ini seharusnya 1325? Didasarkan pada persyaratan menangkap jumlah nilai snapshot, kueri di bawah ini harus mendapatkan apa yang Anda cari.
sumber
Berikut ini adalah terjemahan dari jawaban yang diterima ke dalam PostgreSQL (saya memilih tanggal 1 Januari 2000 sebagai tanggal dasar. Ubahlah ke tanggal yang lebih awal jika data Anda lebih tua dari itu):
sumber