Amazon redshift 红移-查找的加权平均值

Amazon redshift 红移-查找的加权平均值,amazon-redshift,Amazon Redshift,我试图使用以下数据计算加权平均值 project_name, project_type, sales project_a, type_1, 2 project_a, type_2, 4 project_a, type_3, 6 project_b, type_1, 4 预期产出: project_name, project_type, sales, wgt_average project_a, type_1, 2, 0.17 project_a, type_2, 4, 0.33 project

我试图使用以下数据计算加权平均值

project_name, project_type, sales
project_a, type_1, 2
project_a, type_2, 4
project_a, type_3, 6
project_b, type_1, 4
预期产出:

project_name, project_type, sales, wgt_average
project_a, type_1, 2, 0.17
project_a, type_2, 4, 0.33
project_a, type_3, 6, 0.5
project_b, type_1, 4, 1
以下是我的SQL:

select project_name, project_type, count(project_type) * sum(sales) / nullif(count(sales),0)
from table 

上面的SQL按每个项目名称/项目类型计算。如何获得项目名称、项目类型组合的加权平均值

我们可以使用
SUM
作为分析函数:

SELECT
    project_name,
    project_type,
    sales,
    1.0*sales / SUM(sales) OVER (PARTITION BY project_name) As wgt_average
FROM yourTable
ORDER BY
    project_name,
    project_type;


我想,问题的关键在于项目名称、项目类型组合,而不仅仅是项目名称。这是否应该更改“分区依据”部分?@Sowmya不,您读错了,分区仅在项目名称上。@TimBiegeleisen您确实在最右边的列中给出了scott martin所要求的内容。然而,装腔作势者不确定是哪种组合,因为他们在问“我如何才能得到项目名称、项目类型组合的加权平均值”,我理解你困惑的根源。鉴于目前的数据/表格,只有一个项目名称、项目类型组合的实例。在这种情况下,加权平均值为1.0。然而,您在wgt_平均值中显示的似乎只是项目名称的加权平均值。