我想将表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
?
答案 0 :(得分:0)
您可以在简单查询中将所选列乘以系数,例如:
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)