我想计算Oracle查询中的多个列。显然,你如何编写它有很大的不同。这是两种可能性我已经试过:在Oracle中统计多个列有什么不同?
select sum(column1 + column2 + column3) from ...
select sum(column1) + sum(column2) + sum(column3) from ...
表是一样的,连接是相同的,在WHERE子句是一样的,等等。然而,当我运行查询,第一个结果在15,481.19,第二个查询在14,385.69。这是相当不同的...
如果将所有数据导出到Excel并尝试获取所有值的总和,则结果与第二个查询相同。在Excel中,我尝试添加他们,以多种方式:
- 只需选择所有数据
- 计算各列的总和,并把它们加起来
- 计算各行的总和,并把它们加起来
当我尝试在代码中获取所有数据,并将其代码添加到代码中而不是在查询中时,我也会得到与第二个查询相同的结果,并且与Excel中的结果相同。
问题是Oracle文档中另有说明:http://docs.oracle.com/javadb/10.8.2.2/ref/rrefsqlj13083.html。正如你在这个链接中看到的,他们说要使用第一个查询。
FYI:
- 用于该用12.1.0版本的Oracle客户端。
- 我在Oracle SQL Developer和Toad中都试过它。
基于这些测试,我现在知道我需要使用第二个查询来获得正确的结果,但我想了解为什么第一个查询结果比预期结果不同。有人对这个有经验么?这些查询如何返回不同的结果?
在此先感谢!
感谢您的澄清! – user2286826