0

我的数据集如下所示(前四列) -

Person Rate Count  isImportant  Results
A       $2    15    true        $2
B       $1    30    true        $1
B       $3    10    false       (3*10+2.5*25)/(10+25)
B       $2.5  25    false       (3*10+2.5*25)/(10+25)
D       $1.5  20    false       $1.5

如何通过对列Results进行分组PersonisImportant计算Rate和列的加权平均值来生成第五Count列?

4

1 回答 1

1

您可以使用窗口函数:

select t.*,
    sum(rate * count) over(partition by person, isImportant)
        / sum(count) over(partition by person, isImportant) result
from mytable t
于 2020-09-29T22:43:07.040 回答