CUBE 和计算维数

Bet*_*son 3 oracle database-design sql-server olap cube

如果呈现的数据4-dimension中每个维度都依赖于分层的 3 级聚合,例如(国家、城市、街道),那么我们可以将其总结为4096多种方式!

我们知道对于具有n维度的多维数据集,其中没有维度是分层的,我们有2^n汇总方式,但在这种情况下,每个维度都有分层的 3 级聚合4^4=256方式。

为什么上面的说法提到有4096办法呢?

如果由于我的英语用法缺陷而无法很好地说明我的问题,请参阅:

在此处输入图片说明

这是我的公式,但是我的答案与 4096 非常不同!

在此处输入图片说明

Cad*_*oux 5

似乎作为(年,月,周)给出的“分层维度”示例实际上与 3 个独立维度相同 - 允许所有 8 种可能的组合 - 这意味着它们是独立/正交的。

因此,如果您有 4 个这些三元组维度,则与 12 个独立维度相同。

但无论如何,答案基本相同。

m 个独立维度的 0 到 m 个可能选择的可能组合数是二项式系数的总和,Wolfram 甚至帮助我们简化了它:

组合扩展( https://www.wolframalpha.com/input/?i=sum+m+choose+n+for+n+%3D+0+to+m )

这是 3 个维度的 8 种可能组合的来源,并说明为什么该列表包含 0 到 3 个元素的组合。

您还可以将其视为每个维度的二元选择 - 我们知道您可以选择包含或排除某个维度,因此对于是否包含每个维度,您有 2 个选择,因此第一个您有 2 个选择, 2 表示第二个等等。所有这些的乘积是 2 * 2 * ... = 2^n

所以对于 12 个维度,即2^124096。

如果您将其视为 4 个较胖的维度(基本上从二元选择到八进制选择),那么对于每个层次结构,乘积中的组合数为 8,因此您有 8 种可能的第一个“维度”组合,与第二个“维度”的 8 种组合,依此类推,给出8 * 8 * 8 * 8 = 8^4 = 4096- 您可以简单地将其视为将 2 重新组合为 3 组。

我不想疏忽指出,实际上,很多时候层次维度并不是以任意方式分组的,就好像组件维度是独立的一样。

毕竟,他们处于等级制度是有原因的!

我注意到即使在 (year, month, week) 给出的例子中, (month, week) 组合也很弱 - 因为我假设那一周是一年中的周数。这种汇总将适用于所有年份,而几周并不适合几个月,因此分析可能非常罕见。

在许多 3 层级的情况下,您只对分组 (d1, d2, d3), (d1, d2), (d1), () 感兴趣 - 永远不会遗漏父级 - (country, state, city, street, ...) 就是一个很好的例子——一个真正的国家实体并不真正作为一个独立于国家-国家组合的概念而存在。