【发布时间】:2025-12-06 22:05:01
【问题描述】:
示例数据(完整的表格有更多的列和数百万行):
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,希望它可以工作
【问题讨论】: