我想計算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