【发布时间】:2023-01-03 04:16:25
【问题描述】:
在 Postgresql 中,假设我有一个包含 3 条记录的 2-col 表,即 tA
id | col_A | col_B | type
1 | 1 | 2 | A
2 | 3 | 4 | B
3 | 3 | 1 | A
和一个包含每种类型的列权重的表,名为tB
type | col | weight
A | col_A | 0.6
A | col_B | 0.4
B | col_A | 0.4
B | col_B | 0.6
然后我想要一个与tA 大小相同的新表,但 cols 加权为 tB。例如,id=1,由于类型为A,因此为col_A*0.6、col_B*0.4。预期结果如下
id | col_A | col_B | type
1 | 0.6 | 0.8 | A
2 | 1.8 | 1.6 | B
3 | 1.2 | 0.4 | A
目前,我编写了一个 SQL 函数来处理,但我想知道是否有另一种方法可以在 SQL 查询中完成?
【问题讨论】:
标签: sql postgresql inner-join aggregate-functions