如何复制行但更改特定列中的值postgresql-redshift

monwx1rj  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(234)

我有一个数据集,我需要在接下来的13周内复制。但是,在一个特定的列中,日期需要更新。
我的数据:
表1

col1    col2    col3    col4    col5    date
110010  axbc    ORT.01  +   ACTIVE  07-Jun
110011  axbe    ORT.01  +   ACTIVE  08-Jun
110012  axbc    ORT.01  +   ACTIVE  09-Jun
110013  axbe    ORT.01  +   ACTIVE  10-Jun
110014  axbc    ORT.01  +   ACTIVE  11-Jun
110015  axbe    ORT.01  +   ACTIVE  12-Jun
110016  axbc    ORT.01  +   ACTIVE  13-Jun

数据需要复制,但日期列应该更新。
预期产量:

col1    col2    col3    col4    col5    date
110010  axbc    ORT.01  +   ACTIVE  07-Jun
110011  axbe    ORT.01  +   ACTIVE  08-Jun
110012  axbc    ORT.01  +   ACTIVE  09-Jun
110013  axbe    ORT.01  +   ACTIVE  10-Jun
110014  axbc    ORT.01  +   ACTIVE  11-Jun
110015  axbe    ORT.01  +   ACTIVE  12-Jun
110016  axbc    ORT.01  +   ACTIVE  13-Jun
110010  axbc    ORT.01  +   ACTIVE  14-Jun
110011  axbe    ORT.01  +   ACTIVE  15-Jun
110012  axbc    ORT.01  +   ACTIVE  16-Jun
110013  axbe    ORT.01  +   ACTIVE  17-Jun
110014  axbc    ORT.01  +   ACTIVE  18-Jun
110015  axbe    ORT.01  +   ACTIVE  19-Jun
110016  axbc    ORT.01  +   ACTIVE  20-Jun
..........................
..........................

我尝试在红移中使用交叉连接,但得到的数据不正确/不一致。

select col1,col2,col3,col4,col5,updated_Date

from table1

cross join (select distinct dateadd('day',91,date) as updated_Date)
s5a0g9ez

s5a0g9ez1#

我会给你一个解决办法。因为我不是一个 postgresql 亲,你可能会得到更好的解决方案的其他人或可能能够得到改善这一点自己。
我会用的 interval '7' day 机制反复13周。我试图定义一个变量并在循环(或游标)中执行它,但没有成功。
请看以下作品:
保留表中已有的数据,然后创建另一个表来放置创建的数据。

Insert into t2
Select col1,col2,col3,col4,col5, col6 from t
union
Select col1,col2,col3,col4,col5, col6 + interval '7' day as col6 from t
union
Select col1,col2,col3,col4,col5, col6 + interval '14' day as col6 from t
....
;

这是小提琴

相关问题