我想根据日期间隔将单个任务的时间“分配”或“拆分”为等周。但我不知道如何在 Postgresql 中做到这一点。
CREATE TABLE task
(id int4, start date, stop date, hr int4);
INSERT INTO task
(id, start, stop, hr)
VALUES
(1, '2017-01-01','2017-01-31', 80),
(2, '2017-01-01','2017-02-28', 120);
这两个任务的期望输出应该是这样的:
The 80 hr of task 1 should be distributed into 5 weeks
201701 16 hr
201702 16 hr
201703 16 hr
201704 16 hr
201705 16 hr
The 120 hr of task 2 should be distributed into 9 weeks
201701 13,3 hr
201702 13,3 hr
201703 13,3 hr
201704 13,3 hr
201705 13,3 hr
201706 13,3 hr
201707 13,3 hr
201708 13,3 hr
201709 13,6 hr
此估计是粗略估计,可能与实际情况有所不同。
我可以想到三个步骤(但不知道如何进行):
- 估计每个任务的周数
- 将小时数除以周数
- 按 iso 周对结果进行分组