我有两个立方体,结构如下:
-- cube 1
select
dimension1,
dimension2,
sum(measure1),
sum(measure2),
grouping__id
from
table1
group by
dimension1,
dimension2
with cube
;
-- cube 2
select
dimension1,
dimension2,
count(distinct measure3),
grouping__id
from
table2
group by
dimension1,
dimension2
with cube
;
我想把这两个立方体连接在一起,这样就有了一个立方体,其中measure1、measure2和measure3是事实。之所以有两个独立的多维数据集,是因为第二个多维数据集涉及一个count distinct操作,该操作的成本太高,无法在单个步骤中运行。
我试过加入分组\uu id和nvl(a.dimension1,0)=nvl(b.dimension1,0)(对于每个维度)。但是,这似乎会创建更多的行。即使使用左联接,联接多维数据集中的记录数也比左联接多维数据集中的记录数大。
两个维度相同的多维数据集应该如何连接,以便不创建重复/无关的记录?
1条答案
按热度按时间qni6mghb1#
事实证明,困难仅仅在于我为空值选择默认值;当0是其中一个维度的可能值时,选择0会导致许多无关的记录。最后,我将0更改为-1000(我确认的值不是数据中包含的值),并按照上面所述加入。
因此,最终查询结果如下: