在postgresql中如何将一个表与另一个表的列相乘?

2024-04-26 12:01:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将一个表A的一些列(除了geom、gid、外键)与另一个表B.sum的列相乘,条件是:
WHERE A.gid = B.gid

我想做一些类似于伪代码的事情:

FOR r IN SELECT [list of the column to multiply] 
DO 
A.r* B.sum
WHERE A.gid = B.gid

如何在postgresql中实现这一点?你知道吗

我应该使用PL/pgSQL还是PL/Python?你知道吗

或者使用geopandas?你知道吗


Tags: ofthe代码inforwhere条件事情
1条回答
网友
1楼 · 发布于 2024-04-26 12:01:34

您可以在简单查询中将所选列乘以系数,例如:

with table_a(gid, col1, col2) as (
values
    (1, 10, 20),
    (2, 10, 30)
),
table_b(gid, sum) as (
values
    (1, 2),
    (2, 3)
)

select gid, col1* sum as col1, col2* sum as col2
from table_a
join table_b using(gid)

 gid | col1 | col2 
  -+   +   
   1 |   20 |   40
   2 |   30 |   90
(2 rows)

相关问题 更多 >