Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在查询中查找加权平均值_Sql_Ms Access - Fatal编程技术网

Sql 在查询中查找加权平均值

Sql 在查询中查找加权平均值,sql,ms-access,Sql,Ms Access,问题是:在前一条轨道上,计算加权平均收益率,而不是按国家平均收益率。收益率定义为股息除以价格,并以百分比报告。加权平均数包括股票数量作为权重。 但我不知道如何找到加权平均数 我已经有一些代码用来计算平均收益率(以百分比为单位)。但我在计算加权平均数时遇到了麻烦。我和一些同学谈过,他们说他们正在尝试使用这个公式:sumx*w/sumw,其中w是重量。 但我在代码中实现这一点时遇到了困难 SELECT Nations.nationName, AVG(dividend/price) AS Yield

问题是:在前一条轨道上,计算加权平均收益率,而不是按国家平均收益率。收益率定义为股息除以价格,并以百分比报告。加权平均数包括股票数量作为权重。 但我不知道如何找到加权平均数

我已经有一些代码用来计算平均收益率(以百分比为单位)。但我在计算加权平均数时遇到了麻烦。我和一些同学谈过,他们说他们正在尝试使用这个公式:sumx*w/sumw,其中w是重量。 但我在代码中实现这一点时遇到了困难

SELECT Nations.nationName, 
AVG(dividend/price) AS Yield
FROM Shares, Nations
WHERE Shares.nationID=Nations.ID
GROUP BY Nations.nationName;

最后,加权平均应该是计算机,但我不知道如何在代码中实现它。我们应该根据的材料对这个问题没有帮助。

我正确地跟踪了您,您应该考虑:

SELECT 
    n.nationName, 
    SUM(s.quantity * s.dividend / s.price)/IIF(SUM(s.quantity) = 0, NULL, SUM(s.quantity)) AS weighted_yield
FROM Shares s
INNER JOIN Nations n ON s.nationID = n.ID
GROUP BY n.nationName;
注:

总是喜欢显式连接而不是老式的隐式连接 此外,使用表别名是一种最佳做法,因为它们使查询更短,更容易遵循
非常感谢你的工作。但我想知道为什么您选择了数量、股息和价格这三个属性来计算加权平均值。@AnaLiquid:股息和价格已经存在于您的查询中,您的问题提到您想使用数量作为权重,所以…@GMB MS Access不支持nullif不幸的是。@LeeMac:是的,正确,我将查询改为使用IIF。