我有一个像这样的当前表

并想获得这个所需的表:

正如您所看到的,这个所需的表应该有第四列,它指示我这一行中的价格与同一产品行的其余值的比例值
例如,对于产品类型 AI,有三种产品(1,2 和 3),价格分别为 20、20 和 30。
在这种情况下,对于产品 1,我想将其权重设为(产品价格/属于产品 A 的产品价格总和)。这怎么可能?
谢谢
我有一个像这样的当前表

并想获得这个所需的表:

正如您所看到的,这个所需的表应该有第四列,它指示我这一行中的价格与同一产品行的其余值的比例值
例如,对于产品类型 AI,有三种产品(1,2 和 3),价格分别为 20、20 和 30。
在这种情况下,对于产品 1,我想将其权重设为(产品价格/属于产品 A 的产品价格总和)。这怎么可能?
谢谢
我们可以SUM()在这里尝试使用作为分析函数:
SELECT
PRODUCT,
PRODUCT_TYPE,
PRICE,
1.0 * PRICE / SUM(PRICE) OVER (PARTITION BY PRODUCT_TYPE) AS WEIGHT
FROM yourTable;
这里的想法是,上面SUM()是一个窗口函数,它计算每种产品类型的总价格之和。然后将其用于对每条记录的每个价格进行标准化。