【发布时间】:2017-03-22 23:24:08
【问题描述】:
所以我正在为客户进行同期群分析,其中同期群是在同一个月开始使用该产品的一群人。然后,我会跟踪每个群组的总使用量,直到现在为止。
例如,第一个“队列月份”是 2012 年 1 月,然后我有“使用月份”1 月 12 日、2 月 12 日、3 月 12 日、...、3 月 17 日(当前月份)。一栏是“队列月份”,另一栏是“使用月份”。这个过程在随后的每个队列月重复。表格如下:
Jan 12 | Jan 12
Jan 12 | Feb 12
...
Jan 12 | Mar 17
Feb 12 | Feb 12
Feb 12 | Mar 12
...
Feb 12 | Mar 17
...
Feb 17 | Feb 17
Feb 17 | Mar 17
Mar 17 | Mar 17
出现问题是因为我想对现有和未来的同类群组进行一年的预测。 这意味着对于 1 月 12 日的队列,我想做 4 月 17 日到 3 月 18 日的预测。 我还想从 4 月 17 日到 3 月 18 日对 4 月 17 日的队列(尚不存在)进行预测。依此类推,直到 3 月 18 日对 3 月 18 日的队列进行预测。 我可以处理预测,不用担心。
我的问题是,在每个群组切换之前,我无法弄清楚如何在“使用月份”列中添加(4 月 17 日至 3 月 17 日)的列表。 我还需要添加 4 月 17 日至 3 月 18 日的群组,并为这些未来群组中的每一个提供(4 月 17 日至 3 月 17 日)列表的适用部分。
所以我希望表格看起来像:
Jan 12 | Jan 12
Jan 12 | Feb 12
...
Jan 12 | Mar 17
Jan 12 | Apr 17
..
Jan 12 | Mar 18
Feb 12 | Feb 12
Feb 12 | Mar 12
...
Feb 12 | Mar 17
Feb 12 | Apr 17
...
Feb 12 | Mar 18
...
...
Feb 17 | Feb 17
Feb 17 | Mar 17
...
Feb 17 | Mar 18
Mar 17 | Mar 17
...
Mar 17 | Mar 18
我知道想到的第一个解决方案是创建一个包含 1 月 12 日至 3 月 18 日的所有日期的列表,将其交叉连接到自身,然后将外部连接左连接到我拥有的当前表(其中队列 / 使用月的范围从 1 月 12 日到 3 月 17 日)。但是,这是不可扩展的。
有没有一种方法可以迭代地添加到明年月份的列表中?
我正在使用 HP Vertica,如果绝对必要,可以使用 Presto 或 Hive
【问题讨论】: