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;
Bạn có thể GROUP BY
hai cột:dấu thời gian được cắt ngắn thành giờ và thời điểm 5 phút.
Ví dụ tạo ra các vị trí 0 - 11
. Thêm 1
nếu bạn thích 1 - 12
.
Tôi truyền kết quả của extract()
thành số nguyên, vì vậy phép chia / 5
cắt bớt chữ số phân số. Kết quả:
phút 0 - 4 -> khe 0
phút 5 - 9 -> khe 1
v.v.
Truy vấn này chỉ trả về giá trị cho các khoảng thời gian 5 phút mà các giá trị được tìm thấy. Nếu bạn muốn một giá trị cho mọi vị trí hoặc nếu bạn muốn có số tiền chạy khoảng thời gian hơn 5 phút, hãy xem xét câu trả lời có liên quan này:
- PostgreSQL:số hàng đang chạy cho truy vấn 'theo phút'