câu truy vấn trong laravel
Em đang làm thống kê đơn hàng bằng dữ liệu bản đồ chart
Theo từng ngày ví dụ 1 ngày có bao nhiêu đơn hàng đơn hàng được hiển thị theo giờ chẳng hạn ngày đấy có 2 đơn hàng vào lúc 12h với 15h, dữ liệu ở trục x sẽ hiển thị tất cả số giờ trong 1 ngày, nếu k có đơn hàng thì hiện 0 đơn hàng, nếu có đơn hàng thì hiện tổng các đơn hàng trong giờ đó
đơn hàng theo tháng, mỗi ngày trong tháng có báo nhiêu đơn hàng, 1 tháng có 30 ngày thì hiển thị tất cả 30 ngày, ngày nào k có đơn hàng thì hiện 0 đơn hàng, ngày nào có thì hiển thị tổng tất cả đơn hàng trong ngày đó
đơn hàng theo năm
giúp em với ạ, em bí quá
1 CÂU TRẢ LỜI
Em nên có một bảng là hourly_order_logs
, daily_order_logs
. Cứ mỗi giờ, mỗi ngày thì em chạy cronjob để cập nhật số liệu vào các bảng ý, xem trong giờ trước, hay ngày hôm trước có bao nhiêu đơn hàng. Ví dụ như vào lúc 13:00
phút, job của em sẽ được chạy, và lưu vào bảng hourly_order_logs
với thông tin là
id | day | hour | order_count | created_at | updated_at |
---|---|---|---|---|---|
11 | 2018-12-03 | 11 | 2 | 2018-12-03 12:00:01 | 2018-12-03 12:00:01 |
12 | 2018-12-03 | 12 | 4 | 2018-12-03 13:00:01 | 2018-12-03 13:00:01 |
tương tự với thống kê theo ngày.
Khi cần in ra biểu đồ, thì em chỉ cần query trong các bảng log này thôi, chứ không cần phải tính toán phức tạp để đi đếm số order theo từng giờ, từng ngày nữa