我有一个表格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
有人可以告诉我我该怎么做。 谢谢
答案 0 :(得分:2)
UPDATE t1 SET plan = 50 WHERE date >= '2015-01-01' AND date <= '2015-01-30'
答案 1 :(得分:0)
如果我理解正确,您希望月份的第一个值为整个月的值。
通过查询,您可以执行以下操作:
select date,
first_value(plan) over (partition by extract(year from date), extract(month from date)
) as plan,
actual
from t1;
答案 2 :(得分:0)
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')