Saya seorang pemula dengan database jadi saya mencari bantuan Anda dengan yang ini.
Saya memiliki tabel yang berisi data deret waktu.
2012/01/01 00:10, 10
2012/01/01 00:30, 5
2012/01/01 01:00, 10
2012/01/01 01:40, 10
2012/01/01 02:00, 20
Tabel menyimpan data berbasis interval dengan hanya menjaga batas atas interval. Misalnya baris pertama mewakili interval dari [00:00 - 00:10] dengan nilai 10, baris kedua mewakili interval dari (00:10 - 00:30] dengan nilai 5 dan yang ketiga mewakili Interval mulai (00:30 - 01:00) dengan nilai 10.
Saya memerlukan kueri yang efisien dalam Postgres untuk mengumpulkan data per jam untuk struktur seperti yang dijelaskan di atas. Jadi hasilnya akan seperti ini:
2012/01/01 00:00, 2012/01/01 01:00, 25
2012/01/01 01:00, 2012/01/01 02:00, 30
Perhatikan bahwa data deret waktu sangat besar sehingga bantuan pengindeksan ini akan sangat dihargai.
Terima kasih, dan
2012/01/01 00:10, 10
, apakah semua nilai itu dalam satu kolom, atau apakah koma pembatas kolom? Juga, apakah jam pastinya (1:00, 2:00, 3:00, dll.) Dijamin untuk disimpan dalam tabel deret waktu, atau mungkinkah melewati: 00 dan memiliki entri seperti2012/01/01 03:50
diikuti oleh2012/01/01 04:10
?2012/01/01 04:00, 2012/01/01 05:00, 0
? atau haruskah jam itu dihilangkan dari ringkasan?Jawaban:
lihat sqlfiddle
Sedangkan untuk indeks: Anda bisa mencoba fungsi indeks
date_trunc('hour', t - interval '1 minute')
tetapi saya tidak yakin postgresql dapat menggunakannya.sumber