簡體   English   中英

postgresql:相對於日期更新所選列中的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM