【发布时间】:2022-01-01 16:25:59
【问题描述】:
有一张桌子:
| id | direction_id | created_at |
|---|---|---|
| 1 | 2 | 22 November 2021 г., 16:00:00 |
| 2 | 2 | 22 November 2021 г., 16:20:00 |
| 43 | 2 | 22 November 2021 г., 16:25:00 |
| 455 | 1 | 22 November 2021 г., 16:27:00 |
| 6567 | 2 | 22 November 2021 г., 17:36:00 |
| 674556 | 2 | 22 November 2021 г., 20:01:00 |
| 5243554 | 1 | 22 November 2021 г., 20:50:00 |
| 5243554 | 1 | 22 November 2021 г., 21:46:00 |
我需要得到以下结果:
| 1 | 2 | created_at_by_hour |
|---|---|---|
| 1 | 3 | 22.11.21 17 |
| 1 | 4 | 22.11.21 18 |
| 1 | 4 | 22.11.21 19 |
| 1 | 4 | 22.11.21 20 |
| 2 | 5 | 22.11.21 21 |
| 3 | 5 | 22.11.21 22 |
标题中的 1 和 2 是表中 direction_id 的所有可能值。
created_at 减少到小时,您需要计算有多少记录满足条件 created_at_by_hour。但是分组应该是这样的,如果没有创建记录的时间(小时),那么只需复制前一个小时。
该表由三个字段组成 - id (int)、direction_id (int)、created_at (timestamptz)。我需要每小时(基于 created_at 字段)上传数据,其中包含在此“分组”时间之前创建的记录数。但我不仅需要数字,还需要每个direction_id(只有两个-1 和2)。如果在某个时间没有为某个direction_id 创建记录,则复制前一个记录,但结果应以最后一个created_at 结束。 created_at 是创建记录的时间。
【问题讨论】:
-
那么列数一定是动态的?数据中是否可以有 1 和 2 以外的值?
标签: sql postgresql