将每行的值除以此列的SUM

时间:2013-10-14 16:25:29

标签: sql algorithm ms-access

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

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

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 个答案:

答案 0 :(得分:14)

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