CUBE 和計算維數
如果呈現的數據
4-dimension
中每個維度都依賴於分層的 3 級聚合,例如(國家、城市、街道),那麼我們可以將其總結為4096
多種方式!我們知道對於具有
n
維度的多維數據集,其中沒有一個維度是分層的,我們有2^n
匯總方式,但在這種情況下,每個維度都有分層的 3 級聚合4^4=256
方式。為什麼上面的說法提到有
4096
辦法?如果由於我的英語用法有缺陷而無法很好地說明我的問題,請參閱:
這是我的公式,但我的答案與 4096 大不相同!
似乎作為(年、月、週)給出的“分層維度”範例實際上與 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^12
4096。如果您將其視為較胖的維度中的 4 個(基本上從二進制選擇到八進制選擇),則每個層次結構的產品組合數為 8,因此您有第一個“維度”的 8 個可能組合,結合第二個“維度”的 8 種組合,依此類推,
8 * 8 * 8 * 8 = 8^4 = 4096
您可以簡單地將其視為將 2 重新組合為 3 組。我不想疏忽地指出,實際上,很多時候層次維度並不是以任意方式分組的,就好像組件維度是獨立的一樣。
畢竟,他們處於等級制度中是有原因的!
我注意到即使在(年、月、週)給出的範例中,(月、週)組合也很弱——因為我假設周是一年中的周數。這種匯總將持續多年,而幾週不能很好地適應幾個月,因此分析可能非常罕見。
在許多 3 層級的情況下,您只對分組 (d1, d2, d3)、(d1, d2)、(d1)、() 感興趣 - 永遠不要遺漏父級 - (國家、州、城市、 street, …) 就是一個很好的例子——一個真正的國家實體並不真正作為一個獨立於國家-國家組合的概念而存在。
歡迎來到 DBA.SE。這個問題更多的是一個數學問題,而不是一個數據庫問題。它可能更適合不同的站點。
然而,
8 ^ 4 = 4096
. 或者CUBE
(3 級聚合)可能ROLLUP
值的冪是可能變化的數量,即4096
.免責聲明
我不是數學家。如果你想要一個徹底的解釋,那麼你將不得不在不同的網站上發布。