[英]postgresql: update rows in a selected column with respect to date
我有一個表t1的列和行為
date(date) plan(numeric) actual(numeric)
2015-01-01 50 36
2015-01-02 60 45
2015-01-03 70 40
2015-01-04 80 36
我想更改相對於日期的行(僅在計划列中)。 例如我想更改行屬於2015-01-01至2015-01-30。
預期輸出:
date(date) plan(numeric) actual(numeric)
2014-12-31 45 50
2015-01-01 50 36
2015-01-02 50 45
2015-01-03 50 40
2015-01-04 50 36
.
.
2015-01-28 50 20
有人可以讓我知道我該怎么做。 謝謝
UPDATE t1 SET plan = 50 WHERE date >= '2015-01-01' AND date <= '2015-01-30'
如果我理解正確,則希望該月的第一個值是整個月的值。
通過查詢,您可以執行以下操作:
select date,
first_value(plan) over (partition by extract(year from date), extract(month from date)
) as plan,
actual
from t1;
update table t1
set plan = 50
where date >= to_date('2015-01-01' ,'yyyy-MM-dd')
and date <= to_date('2015-01-30' ,'yyyy-MM-dd')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.