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

时间:2017-05-19 14:32:18

标签: python postgresql

我想将表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

1 个答案:

答案 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)