PostgreSQL-在基于另一列的列中填充值

时间:2020-08-18 15:33:12

标签: postgresql

我的数据集摘录如下:

|time_1      | status | statut_2y |
|            |        |           |
|2017-01-01  |    X   |           | 
|2017-02-01  |    X   |           |  
|2017-03-01  |    X   |           | 
|2017-04-01  |    X   |           | 
|2017-05-01  |    X   |           |
|2017-06-01  |    X   |           |
|2017-07-01  |    X   |           |
|2017-08-01  |    X   |           |
|2019-01-01  |    0   |           | 
|2019-02-01  |    1   |           | 
|2019-03-01  |    0   |           | 
|2019-04-01  |    0   |           | 
|2019-05-01  |    1   |           | 
|2019-06-01  |    1   |           | 
|2019-07-01  |    0   |           | 
|2019-08-01  |    1   |           |

因此,基本上我希望在 statut_2y 列中将等价的状态设为2年。

例如: 对于2017年1月1日:我们将具有值 0 ,因为在2019年1月1日状态为0。

我希望我足够清楚..(英语不是我的母语)

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要自我加入才能做到这一点:

UPDATE table
SET status_2y = self.status
FROM table AS self
WHERE self.time_1 = table.time_1 + '2 YEARS'::interval