首页 > 解决方案 > 以下哪个表达式是 SUM() 函数的更正确用法?

问题描述

我试图将一些每日交易量的总和乘以它们的标价和费率,但我注意到我得到的结果略有不同,具体取决于我使用 SUM() 函数的方式。

我尝试将 SUM() 内部的字段相乘,并将乘法移到聚合函数之外。

SELECT SUM(Vol * LP * Rate) FROM Table A
-- or
SELECT SUM(Vol) * LP * Rate FROM Table A GROUP BY LP, Rate

由于这些结果将汇总给客户,因此我没想到会担心分组,并且仍然不知道这怎么会是一个问题。

标签: sqlsql-server

解决方案


这些做不同的事情,所以你应该使用适合你的问题的版本。

LP对于第二个,您必须RateGROUP BY.

对于第一个,这不是必要的——甚至是不可取的。

所以这就是答案。GROUP BY使用与您想要的版本相对应的版本。我想这通常是第一个版本。


推荐阅读