【发布时间】:2021-12-08 11:13:53
【问题描述】:
我有一张有 3 个维度的表格 - A、B 和 C。 我基本上想要这些维度的所有可能组合的值,并在组合不存在时将所有度量 (M) 填充为 0。
假设我有桌子-
如果我这样做,我会得到 -
select a,b,c from sum(m) fact group by a,b,c
但我想要所有可能的组合,-
目前,我正在执行如下所示的交叉连接,但是否有更快的方法来执行此操作(因为我的表有大约 1M 条记录)? -
select * from (
select distinct f1.a, f2.b, f3.c
from fact f1
cross join fact f2
cross join fact f3 ) all
left join
( select a,b,c from sum(m) fact group by a,b,c) s
on all.a=s.a and all.b=s.b and all.c=s.c
【问题讨论】:
-
你的数据库是什么? MySQL 不是 Oracle,Oracle 也不是 MySQL。它们在功能上都不同。只要您标记了 DWH,我认为这实际上是 Oracle,但请删除不相关的标签。
标签: mysql sql database oracle data-warehouse