實例數據(完整的表有行更多的列數以百萬計):的Oracle SQL GROUP BY CUBE具有鮮明的ID
invoice_number |year |department |euros
-------------------------------------------------------------
1234 |2010 |1 | 200
1234 |2011 |1 | 200
1234 |2011 |2 | 200
4567 |2010 |1 | 450
4567 |2010 |2 | 450
4567 |2010 |3 | 450
我的目的:
我要總結的歐元每年和每個可能的組合中的每個部門。
結果應該如何看待:
year |department |euros
--------------------------------------------
2010 |1 |650
2010 |2 |450
2010 |3 |450
2010 |(null) |650
2011 |1 |200
2011 |2 |200
(null) |1 |650
(null) |2 |650
(null) |3 |450
(null) |(null) |650
我的查詢:
select year
, department
, sum(euros)
from table1
group by cube (
year
, department
)
問題:
一個發票號碼可以發生在幾類。例如,一張發票可以有2010年和2011年的項目。當我想每年顯示數據時,這沒有問題。但是,當我想要總計所有年份的歐元總計兩次,每年一次。我想要「按立方體分組」的功能,但我只想彙總不同的發票號碼。
問題表:
year |department |euros
--------------------------------------------
2010 |1 |650
2010 |2 |450
2010 |3 |450
2010 |(null) |1550
2011 |1 |200
2011 |2 |200
(null) |1 |850
(null) |2 |650
(null) |3 |450
(null) |(null) |1950
是否有可能做我想做什麼?到目前爲止,我的搜索沒有結果。我創建了一個SQL Fiddle,我希望它的工作原理
目前正在測試您的新解決方案以提升性能。 – Elisa
當我添加更多數據列時性能下降(顯然)。當我添加所有列時,多維數據集組生成287.912行。對於一個較小的組,我'只'有4.488行。第二個有一個可以接受的表現,第一個沒有。但解決方案似乎工作。 – Elisa