sql - 以下哪个表达式是 SUM() 函数的更正确用法?
问题描述
我试图将一些每日交易量的总和乘以它们的标价和费率,但我注意到我得到的结果略有不同,具体取决于我使用 SUM() 函数的方式。
我尝试将 SUM() 内部的字段相乘,并将乘法移到聚合函数之外。
SELECT SUM(Vol * LP * Rate) FROM Table A
-- or
SELECT SUM(Vol) * LP * Rate FROM Table A GROUP BY LP, Rate
由于这些结果将汇总给客户,因此我没想到会担心分组,并且仍然不知道这怎么会是一个问题。
解决方案
这些做不同的事情,所以你应该使用适合你的问题的版本。
LP
对于第二个,您必须Rate
在GROUP BY
.
对于第一个,这不是必要的——甚至是不可取的。
所以这就是答案。GROUP BY
使用与您想要的版本相对应的版本。我想这通常是第一个版本。
推荐阅读
- javascript - 清除 Discord.js
- performance - 资产管理 - 基于资产(SPEED CAMERA POSITION API)
- python - openCV缺陷检测问题(如何让边框整齐?)
- asp.net-core - .Net 5.0 核心项目 - 向其中添加框架/元包?
- postgresql - 为什么我的 Pipelinewise ETL 没有将行插入雪花?
- android - 如何在 baseadapter 的 webview 上添加操作栏?
- mysql - Transaction + Select ... For Update... 跳过索引
- python - 使用 biopython 的 SeqIO 解析 genbank 文件格式
- c++ - condition_variable 用于信令和等待
- unit-testing - 如何访问视图并测试视图是否可见?