将每一行的值除以该列的 SUM

Posted

技术标签:

【中文标题】将每一行的值除以该列的 SUM【英文标题】:Divide the value of each row by the SUM of this column 【发布时间】:2013-10-14 16:25:28 【问题描述】:

我有一个查询,它显示带有名称的项目及其相对于整个项目桶的重量。这些桶是子分类的,所以我想将总重量转换为子类别重量。

预调整,相对于整个铲斗的重量如下所示。

InvestmentName  Weight
Ac              0.01236194
AG              0.04102656
Ca              0.02483226
DF              0.02951128
Ea              0.003295817
GE              0.005415929

这是我在 Excel 中快速完成的预期结果,我现在无法通过查询实现。根据需要,数字总和为 1:

InvestmentName  AdjWeight
Ac              0.106162299
AG              0.352329321
Ca              0.213255347
DF              0.253437998
Ea              0.028303932
GE              0.046511104

这里的任务基本上是将每个条目除以上面第一个表中所有权重的SUM

我试过了:

SELECT InvestmentName, Weight / SUM(Weight) AS AdjWeight FROM Records WHERE = "..."

Access 表示不能按聚合来划分条目​​。有没有办法将 SUM(Weight) 存储为查询中某处的变量并将其用于每个单独的权重?

【问题讨论】:

【参考方案1】:

SELECT InvestmentName, Weight / (SELECT SUM(Weight) FROM Records) AS AdjWeight FROM Records;

【讨论】:

以上是关于将每一行的值除以该列的 SUM的主要内容,如果未能解决你的问题,请参考以下文章

将每列中的值分配为该列的总和

MYSQL:选择一列的 SUM 但该列基于另一个行 ID

分组和划分 Netezza

将列的值与该列 SQL 的平均值进行比较

数据库的五种约束

R中是不是有一种方法,如果一列的值满足另一列中的某个标准,则该列的值应该是上面的值