【发布时间】:2012-10-27 13:04:19
【问题描述】:
我有一个包含 2002 年每一天的数据的表,但它缺少一些日期。即,2002 年有 354 条记录(而不是 365 条)。对于我的计算,我需要在表中包含 Null 值的缺失数据
+-----+------------+------------+
| ID | rainfall | date |
+-----+------------+------------+
| 100 | 110.2 | 2002-05-06 |
| 101 | 56.6 | 2002-05-07 |
| 102 | 65.6 | 2002-05-09 |
| 103 | 75.9 | 2002-05-10 |
+-----+------------+------------+
您看到 2002-05-08 不见了。我希望我的决赛桌是这样的:
+-----+------------+------------+
| ID | rainfall | date |
+-----+------------+------------+
| 100 | 110.2 | 2002-05-06 |
| 101 | 56.6 | 2002-05-07 |
| 102 | | 2002-05-08 |
| 103 | 65.6 | 2002-05-09 |
| 104 | 75.9 | 2002-05-10 |
+-----+------------+------------+
有没有办法在 PostgreSQL 中做到这一点?
我是否将结果作为查询结果(不一定是更新的表)并不重要
【问题讨论】:
-
ID是序列号吗?插入日期后是否需要全部向上移动?
-
是的,我需要像我放在这里的示例表一样更改 ID。在一整年结束时,最后一个 ID 将是 365。
-
我确实阅读了您的其他帖子(已回答),我认为您做错了。您不应依赖 ID 进行排序或分组。这是重要的“日期”。如果你想填补空白,那没关系,它可以使查询更容易,但不是绝对必要的。在“日期”列上创建唯一索引以确保它们不会重复。我正在回答如何填补空白。
-
是的,你是对的。我必须根据日期而不是 ID 来做。但问题是我无法根据日期进行分组。我会试试看。谢谢
标签: postgresql datetime