【发布时间】:2020-06-03 10:42:40
【问题描述】:
我有下表。
date2 Group number
2020-28-05 00:00:00 A 55
2020-28-05 00:00:00 B 1.09
2020-28-05 00:00:00 C 1.8
2020-29-05 00:00:00 A 68
2020-29-05 00:00:00 B 1.9
2020-29-05 00:00:00 C 1.19
2020-01-06 00:00:00 A 10
2020-01-06 00:00:00 B 15
2020-01-06 00:00:00 C 0.88
2020-02-06 00:00:00 A 22
2020-02-06 00:00:00 B 15
2020-02-06 00:00:00 C 13
2020-03-06 00:00:00 A 66
2020-03-06 00:00:00 B 88
2020-03-06 00:00:00 C 99
如您所见,此表中缺少日期 2020-30-05 和 2020-31-05。因此,有必要使用按 GROUP 分组的 2020-29-05 信息填写这些日期。结果最终的输出应该是这样的:
date2 Group number
2020-28-05 00:00:00 A 55
2020-28-05 00:00:00 B 1.09
2020-28-05 00:00:00 C 1.8
2020-29-05 00:00:00 A 68
2020-29-05 00:00:00 B 1.9
2020-29-05 00:00:00 C 1.19
2020-30-05 00:00:00 A 68
2020-30-05 00:00:00 B 1.9
2020-30-05 00:00:00 C 1.19
2020-31-05 00:00:00 A 68
2020-31-05 00:00:00 B 1.9
2020-31-05 00:00:00 C 1.19
2020-01-06 00:00:00 A 10
2020-01-06 00:00:00 B 15
2020-01-06 00:00:00 C 0.88
2020-02-06 00:00:00 A 22
2020-02-06 00:00:00 B 15
2020-02-06 00:00:00 C 13
2020-03-06 00:00:00 A 66
2020-03-06 00:00:00 B 88
2020-03-06 00:00:00 C 99
我尝试通过以下方式进行操作: 创建一个临时表(表 B),其中仅包含 2020-28-05 到 2020-03-06 期间的日期,然后使用左合并,从而使这些新日期为空(以便在空时插入 CASE,所以填写在最后一个值)。但是,它不起作用,因为在合并时我只得到一个日期的空值(但应该是一个日期的 3 倍(因为组)。这只是较大数据集的一部分,你能帮助我如何获得必要的输出? PS我用Vertica
【问题讨论】: