我有一张table,看起来像这样:
ID TARGET_ACTION TARGET_DATE
366 0 21.04.2021
186 1 03.04.2021
929 0 14.04.2021
366 1 17.04.2021
此表中的每个ID可以重复,并且对于不同的日期具有不同的TARGET_ACTION
值。我想为每个id形成一个操作序列,将其分成几周,使其看起来如下所示:
ID 01.04.2021-07.04.2021 08.04.2021-14.04.2021 15.04.2021-21.04.2021
366 0 0 1
186 1 1 0
929 0 1 0
我怎么能做到这一点?
1条答案
按热度按时间nqwrtyyt1#
在这种情况下,您可以使用旋转,尽管全年将有52周的列。首先,您的样本数据:
接下来要做的是将您的数据集与某种时间维度表连接起来。这是一件非常好的事情,有不同的用途。指向如何创建的链接在此:http://oracleolap.blogspot.com/2011/01/script-for-time-dimension-table.html
相反,我创建了一个小型CTE,距离问题只有几周的时间:
现在,如果您从数据中获取周,并将它们与时间维连接起来,您就可以透视结果数据集。下面是带有结果的主SQL。
致敬..。