0

我有一个像这样的当前表

当前表

并想获得这个所需的表:

想要的表

正如您所看到的,这个所需的表应该有第四列,它指示我这一行中的价格与同一产品行的其余值的比例值

例如,对于产品类型 AI,有三种产品(1,2 和 3),价格分别为 20、20 和 30。

在这种情况下,对于产品 1,我想将其权重设为(产品价格/属于产品 A 的产品价格总和)。这怎么可能?

谢谢

4

1 回答 1

2

我们可以SUM()在这里尝试使用作为分析函数:

SELECT
    PRODUCT,
    PRODUCT_TYPE,
    PRICE,
    1.0 * PRICE / SUM(PRICE) OVER (PARTITION BY PRODUCT_TYPE) AS WEIGHT
FROM yourTable;

这里的想法是,上面SUM()是一个窗口函数,它计算每种产品类型的总价格之和。然后将其用于对每条记录的每个价格进行标准化。

在此处输入图像描述

演示

于 2019-08-14T12:26:28.097 回答