很抱歉,如果以前在这里问过这个问题,但我似乎找不到。我一直在寻找如何按小时求和,但我的问题是关于在另一列中定义的时间戳之间的 SUM 和 COUNT。
我有一张名为incoming_orders的表:它显示了预期的目的地,以及传入订单的时间戳。
我有第二个表,名为schedule_output:它显示每个目的地的每个预定输出时刻。
我有第三张表,名为outcoming_orders:它显示了实际目的地以及传出订单的时间戳。
因此,数据可能是:
--Incoming_orders:
Destination Timestamp
ROUTE B 14/03/2018 7:48:00
ROUTE A 14/03/2018 7:58:00
ROUTE A 14/03/2018 12:48:00
ROUTE C 14/03/2018 13:28:00
--Scheduled_Output
ROUTE A 14/03/2018 8:00:00
ROUTE A 14/03/2018 11:00:00
ROUTE A 14/03/2018 12:00:00
ROUTE A 14/03/2018 17:00:00
ROUTE B 14/03/2018 8:00:00
ROUTE B 14/03/2018 10:00:00
ROUTE B 14/03/2018 12:00:00
ROUTE C 14/03/2018 07:00:00
ROUTE C 14/03/2018 14:00:00
ROUTE C 14/03/2018 17:00:00
--Which would lead to the following outgoing_orders:
ROUTE A 14/03/2018 8:00:00
ROUTE B 14/03/2018 8:00:00
ROUTE C 14/03/2018 14:00:00
ROUTE A 14/03/2018 17:00:00
现在,我想检查 07:58 到路由 A 的传入订单实际上是否进入了路由 A 08:00 的输出周期。我正在考虑创建一个这样的表来显示它:
Destination output moment expected_output actual_output diff
Route A 8:00 1 1 0
Route A 11:00 0 0 0
Route A 12:00 0 0 0
Route A 17:00 1 1 0
但问题是:如何计算expected_output列?如何将 12:48 路由 A 的传入订单分组到 12:00-17:00 组?它应该计算预定输出时刻之间的所有订单,但我不确定如何完成。
我可以 CEIL、FLOOR 或 ROUND 到最接近的 schedule_output 值吗?或者我可以以某种方式在行 n 和 n+1 之间进行行数吗?或者还有其他更简单的方法吗?