我有一个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,但我无法获得有效的结果。
有什么提示吗?谢谢!