【发布时间】:2020-01-21 15:04:34
【问题描述】:
我有下表:
Reservations
| id | status | created_at |
| 1 | Opened | 2019-11-12 11:46:11 |
| 1 | Completed | 2019-11-19 23:03:24 |
| 1 | Pending | 2019-11-15 12:04:13 |
| 2 | Opened | 2019-11-14 11:46:11 |
| 2 | Completed | 2019-11-20 23:03:24 |
| 2 | Pending | 2019-11-17 12:04:13 |
我还有一张表,从 2019 年 11 月 1 日到 2019 年 12 月 31 日的每个日历日。
我需要找出在上面列出的时间跨度内每个日历日每个状态出现的次数。
如果状态是 Opened 于 2019-12-14 和 Pending 在 2019-12-17,我需要计算它是 Openedem> 从 2019-12-14 到 2019-12-17 的每一天。
理想:
|2019-11-12 00:00:00 | Opened | 1 |
|2019-11-12 00:00:00 | Pending | 0 |
|2019-11-12 00:00:00 | Completed | 0 |
|2019-11-13 00:00:00 | Opened | 1 |
|2019-11-13 00:00:00 | Pending | 0 |
|2019-11-13 00:00:00 | Completed | 0 |
|2019-11-14 00:00:00 | Opened | 2 |
|2019-11-14 00:00:00 | Pending | 0 |
|2019-11-14 00:00:00 | Completed | 0 |
|2019-11-15 00:00:00 | Opened | 1 |
|2019-11-15 00:00:00 | Pending | 1 |
|2019-11-15 00:00:00 | Completed | 0 |
非常感谢任何帮助。
编辑: 下面 GMB 的解决方案非常接近,但它给我留下了下表:
| status | created_at | ended_at |
| Opened | 2019-11-12 11:46:11 | 2019-11-15 12:04:13 |
| Pending | 2019-11-15 12:04:13 | 2019-11-19 23:03:24 |
| Completed | 2019-11-19 23:03:24 | |
| Opened | 2019-11-14 11:46:11 | 2019-11-17 12:04:13 |
| Pending | 2019-11-17 12:04:13 | 2019-11-20 23:03:24 |
| Completed | 2019-11-20 23:03:24 | |
如何将结束日期添加到我的范围 (2019-12-31) 到缺少的列值?
【问题讨论】:
标签: sql postgresql date calendar