amazon-redshift - 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_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 按每个 project_name / project_type 计算。如何获得 project_name、project_type 组合的加权平均值
解决方案
我们可以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;
演示
推荐阅读
- optimization - 为什么我的卷积神经网络陷入局部最小值?
- android - 无法在 JobService 中使用 JobInfo.NETWORK_TYPE_CELLULAR
- javascript - 如何使用 Javascript 导出 Excel 文件?
- python - 使用 python pandas 查找开始日期和结束日期可用
- r - 在 Shiny 中重新编码变量
- python - 在熊猫中将索引转换为日期时间
- javascript - 在 EJS 模板上渲染一些数据
- vim - 如何交换两个标签页的位置?
- c# - SQLite 按位查询到 EF Core Linq 版本?
- arrays - 将字典转换为数组
迅速