我有一个A
包含n
行(200+)和不同数字列的表。
我有一个表B
,其中包含m
行 (100K+) 和一个名为 的列multipliers
,其类型为数组 ( REAL[]
)。对于 中的每一行B
,该数组的长度为n
,即。中的每个数值变量的乘数A
。对数组进行排序以匹配中id
字段的字母顺序A
桌子A
id | values_1 | values_2
---|----------|-------------
1 | 11.2 | 10.2
2 | 21.9 | 12.5
3 | 30.0 | 26.0
4 | 98.0 | 11.8
桌子B
id | multipliers
--------|-------------
dafcec | {2,3,4,9}
nkjhbn | {0,0,1,5}
ccseff | {1,2,0,5}
ddeecc | {0,0,0,1}
我需要一个返回SUM( multipliers * values_1 )
.
像这样:
b.id | sum(b.multipliers*a.value_1)
--------|----------------------------------
dafcec | 2*11.2 + 3*21.9 + 4*30.0 + 9*98.0
nkjhbn | 0*11.2 + 0*21.9 + 1*30.0 + 5*98.0
ccseff | 1*11.2 + 2*21.9 + 0*30.0 + 5*98.0
ddeecc | 0*11.2 + 0*21.9 + 0*30.0 + 1*98.0
我尝试过使用不同的子查询、LATERAL
连接和UNNEST
,但我无法获得有效的结果。
有什么提示吗?谢谢!