PostgreSQL-用另一个表中的先前值更新表

奥斯卡·维达尔(Oscar Vidal)

我想用第二张表的总和来更新一张表

这是我要更新的表“ x”。有一个起始值和一个结束值:

ID op_date 初始值 终值
1个 2020-02-01 0 0
1个 2020-02-02 0 0
2个 2020-02-01 0 0
2个 2020-02-02 0 0

表``y''保存当天的值:

ID op_date value_day
1个 2020-01-29 500
1个 2020-02-01 100
1个 2020-02-02 200
2个 2020-01-29 750
2个 2020-02-01 100
2个 2020-02-02 250

我希望结果看起来像这样:

ID op_date 初始值 终值
1个 2020-02-01 500 600
1个 2020-02-02 600 800
2个 2020-02-01 750 850
2个 2020-02-02 850 1100

我尝试了此脚本,但是该过程只是运行它,而没有完成它:

UPDATE x
SET 
    initial_value= (select sum(y.value_day) 
        from public.y where 
        y.op_date > '2020-11-01' and y.op_date < x.op_date 
        and y.id = x.id),
    end_value= (select sum(y.value_day) 
        from public.y where 
        y.op_date between '2020-11-01' and x.op_date 
        and y.id = x.id);
露娜

您可以使用窗口功能要了解更多窗口功能,可以查看此链接首先,我正在编写查询以选择值。

select id,op_date,
sum(value_day) over (
    partition by y.id   
    rows between unbounded preceding and current row
  )-value_day as initial_value,
sum(value_day) over (
    partition by y.id   
    rows between unbounded preceding and current row
  ) as end_value
from y

;

这是您的更新查询。

UPDATE x
set initial_value=s_statement.initial_value,
end_value=s_statement.end_value
from 
(select id,op_date,
sum(value_day) over (
    partition by y.id    
    rows between unbounded preceding and current row
  )-value_day as initial_value,
sum(value_day) over (
    partition by y.id   
    rows between unbounded preceding and current row
  ) as end_value
from y) s_statement
where x.id=s_statement.id 
and x.op_date=s_statement.op_date

;

让我知道您是否还可以。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PostgreSQL从另一个表中更新了一个表

来自分类Dev

Postgresql-使用特定数据更新一个表后如何更新另一个表

来自分类Dev

通过另一个表 postgresql 连接两个表中的数据

来自分类Dev

创建一个函数以从PostgreSQL中的另一个表插入一个表

来自分类Dev

如何使一个表与postgresql中的另一个表共享一个序列?

来自分类Dev

PostgreSQL:删除从另一个表引用的行

来自分类Dev

PostgreSQL:连接另一个表的计数

来自分类Dev

Postgresql:基于另一个表的“CASE”

来自分类Dev

POSTGRESQL-计算另一个表中另一个值的出现次数,即使= 0

来自分类Dev

用来自另一个表PostgreSQL的SUM更新列

来自分类Dev

插入一个表会自动先插入另一个表(PostgreSQL)

来自分类Dev

PostgreSQL-根据从另一个表中的选择插入行,并使用新插入的行在该表中更新FK

来自分类Dev

如何从PostgreSQL中的另一个表插入值?

来自分类Dev

在PostgreSQL中使用executemany()在另一个表中插入外键

来自分类Dev

PostgreSQL根据在另一个表中输入的值自动填写字段

来自分类Dev

PostgreSQL-基于另一个表中列的约束

来自分类Dev

PostgreSQL-将每个表转储到另一个文件中

来自分类Dev

PostgreSQL-如果另一个表中存在字段值,则返回结果

来自分类Dev

用另一个表中的字段布尔值更新表

来自分类Dev

在Postgresql中加入2表,但另一个表只会提取其列

来自分类Dev

在PostgreSQL中,为另一个表中的每一行有效地使用一个表

来自分类Dev

是否可以基于PostgreSQL中另一个模式中存在的表自动生成和填充一个模式中的表?

来自分类Dev

用另一个表中的相关值更新逗号分隔的ID

来自分类Dev

PostgreSQL:将丢失的记录从一个表复制到另一个表

来自分类Dev

PostgreSQL:将丢失的记录从一个表复制到另一个表

来自分类Dev

将数据从一个表复制到另一个表 - 忽略重复项 Postgresql

来自分类Dev

如何找到纬度值并将其保存在Postgresql中的另一个表中

来自分类Dev

根据另一个表中的值更新一个表中的字段

来自分类Dev

(PostgreSQL)当“列”中的所有日期都来自另一个表的参考(外键)时,从CSV复制

Related 相关文章

  1. 1

    PostgreSQL从另一个表中更新了一个表

  2. 2

    Postgresql-使用特定数据更新一个表后如何更新另一个表

  3. 3

    通过另一个表 postgresql 连接两个表中的数据

  4. 4

    创建一个函数以从PostgreSQL中的另一个表插入一个表

  5. 5

    如何使一个表与postgresql中的另一个表共享一个序列?

  6. 6

    PostgreSQL:删除从另一个表引用的行

  7. 7

    PostgreSQL:连接另一个表的计数

  8. 8

    Postgresql:基于另一个表的“CASE”

  9. 9

    POSTGRESQL-计算另一个表中另一个值的出现次数,即使= 0

  10. 10

    用来自另一个表PostgreSQL的SUM更新列

  11. 11

    插入一个表会自动先插入另一个表(PostgreSQL)

  12. 12

    PostgreSQL-根据从另一个表中的选择插入行,并使用新插入的行在该表中更新FK

  13. 13

    如何从PostgreSQL中的另一个表插入值?

  14. 14

    在PostgreSQL中使用executemany()在另一个表中插入外键

  15. 15

    PostgreSQL根据在另一个表中输入的值自动填写字段

  16. 16

    PostgreSQL-基于另一个表中列的约束

  17. 17

    PostgreSQL-将每个表转储到另一个文件中

  18. 18

    PostgreSQL-如果另一个表中存在字段值,则返回结果

  19. 19

    用另一个表中的字段布尔值更新表

  20. 20

    在Postgresql中加入2表,但另一个表只会提取其列

  21. 21

    在PostgreSQL中,为另一个表中的每一行有效地使用一个表

  22. 22

    是否可以基于PostgreSQL中另一个模式中存在的表自动生成和填充一个模式中的表?

  23. 23

    用另一个表中的相关值更新逗号分隔的ID

  24. 24

    PostgreSQL:将丢失的记录从一个表复制到另一个表

  25. 25

    PostgreSQL:将丢失的记录从一个表复制到另一个表

  26. 26

    将数据从一个表复制到另一个表 - 忽略重复项 Postgresql

  27. 27

    如何找到纬度值并将其保存在Postgresql中的另一个表中

  28. 28

    根据另一个表中的值更新一个表中的字段

  29. 29

    (PostgreSQL)当“列”中的所有日期都来自另一个表的参考(外键)时,从CSV复制

热门标签

归档