您好我一直在尝试根据一些数据库数据生成报告。我需要计算每天(已完成),所以在这种情况下,假设计算的日期是:(2001-01-02),当前日期是 2001-01-03。所以基本上是当前日期的前一天。
- 当天 locker_orders 占用的最大计数 + 发生时间(每个地方的储物柜最大负载峰值)
- 当天 locker_orders 占用的最小计数 + 发生时间(每个地方的储物柜的峰值最小负载)
- 当天 locker_orders 占用的 AVG 计数(当天的平均负载基于 min max 和每个位置的储物柜数量)
- 组 PER place_id
- 当天每分钟组 PER
- 当天店内所有储物柜的数量(可能会随时间变化)
- 在没有取货日期的情况下,储物柜仍被占用 - 它可能会移至另一天
我能够执行一个简单的查询,按地点和每分钟创建储物柜订单,但目前我在将其放在当天范围内时遇到问题
这是时间线的表示(手工制作;))
给定一个包含数据的模式
数据库数据
- 储物柜
------------------------------------
| id | created_at |
------------------------------------
| 1 | 2001-01-01 00:00 (DATETIME) |
------------------------------------
| 2 | 2001-01-01 00:00 (DATETIME) |
------------------------------------
| 3 | 2001-01-01 00:00 (DATETIME) |
------------------------------------
| 4 | 2001-01-01 00:00 (DATETIME) |
------------------------------------
| 5 | 2001-01-01 00:00 (DATETIME) |
------------------------------------
- LOCKER_ORDERS
------------------------------------------------------------------------------------
| id | created_at | pickup_date | place_id | locker_id |
------------------------------------------------------------------------------------
| 1 | 2001-01-02 10:00 (DATETIME) | 2001-01-02 13:25 (DATETIME) | 1 | 2 |
------------------------------------------------------------------------------------
| 2 | 2001-01-02 07:45 (DATETIME) | 2001-01-02 11:50 (DATETIME) | 1 | 1 |
------------------------------------------------------------------------------------
| 3 | 2001-01-02 19:30 (DATETIME) | NULL | 1 | 4 |
------------------------------------------------------------------------------------
| 4 | 2001-01-01 14:40 (DATETIME) | 2001-01-01 21:15 (DATETIME) | 1 | 5 |
-------------------------------------------------------------------------------------
| 5 | 2001-01-02 12:25 (DATETIME) | NULL | 1 | 3 |
-------------------------------------------------------------------------------------
| 6 | 2001-01-02 13:30 (DATETIME) | 2001-01-02 18:40 (DATETIME) | 1 | 2 |
-------------------------------------------------------------------------------------
| 7 | 2001-01-02 12:45 (DATETIME) | 2001-01-02 20:50 (DATETIME) | 1 | 1 |
-------------------------------------------------------------------------------------
| 8 | 2001-01-02 07:40 (DATETIME) | 2001-01-02 18:15 (DATETIME) | 1 | 5 |
-------------------------------------------------------------------------------------
OUTPUT DATA - 所需的输出
# | Date (day) | place_id | min | max | avg | NO of all lockers in that day in given place |
---------------------------------------------------------------------------------------------
# | 2001-01-02 | 1 | 0 | 4 | 2 | 8 |