SELECT date_trunc('hour', date1) AS hour_stump
, (extract(minute FROM date1)::int / 5) AS min5_slot
, count(*)
FROM table1
GROUP BY 1, 2
ORDER BY 1, 2;
Anda dapat GROUP BY
dua kolom:stempel waktu dipotong menjadi jam dan slot 5 menit.
Contoh menghasilkan slot 0 - 11
. Tambahkan 1
jika Anda lebih suka 1 - 12
.
Saya memberikan hasil extract()
ke bilangan bulat, jadi pembagian / 5
memotong angka pecahan. Hasilnya:
menit 0 - 4 -> slot 0
menit 5 - 9 -> slot 1
dst.
Kueri ini hanya mengembalikan nilai untuk slot 5 menit tempat nilai ditemukan. Jika Anda menginginkan nilai untuk setiap slot atau jika Anda ingin jumlah berjalan lebih dari 5 menit, pertimbangkan jawaban terkait ini:
- PostgreSQL:menjalankan hitungan baris untuk kueri 'menurut menit'