本文由 網易雲 釋出。
作者:王文開
跨視圖資料粒度計算是網易有數推出的新功能,其優點是您可以獨立于目前視圖用的次元來執行此計算。跨視圖資料粒度計算表達式一共有三種,分别是:FIXED,INCLUDE,和EXCLUDE。為了了解在何時/何地/為什麼需要使用它,我們首先必須了解:
1、什麼是資料粒度?
2、在網易有數中哪些地方會影響視圖的資料粒度
1、什麼是資料的粒度?
我們假設有一個表格,其中包含以下字段:OrderID,Customer Name和Sales。一共有12行記錄:

基礎表格
這個表格資料中,OrderID是主鍵,是以這張表的最明細的資料粒度就是OrderID這個字段,因為這個字段能夠區分表中每一條記錄。是以可以這麼來了解:
能夠區分每一行資料的字段稱之為該資料的最細粒度。
在這個例子中,我們對“Sales”這個字段進行求平均值。我們按照最細的資料粒度來,是對所有12條記錄進行求平均值。
求平均值
我彙總了Sales整列,然後将它除以總行數,即$ 3,059.00除以12。這個結果是每個記錄的平均銷售額為$ 254.92。
在網易有數中,如果你僅僅将“Sales”字段拖入圖表後,聚合方式選擇“平均值”,不放置任何其他次元的時候,可以看到,網易有數會預設使用最細的粒度進行計算。
銷售額平均值
我們可以看到,這和将“OrderID”放置在Y軸,然後在再對“Sales”進行求平均值,結果是一樣的。
接下來,我們考慮使用原始資料中的“Customer Name”次元,來改變“Sales”的聚合粒度。比如我在網易有數中提出了以下的問題:
每位顧客的平均銷售額是多少?
現在我們先按照“Customer Name”字段進行排序,重新排列我們表格的資料。
按客戶名稱排序
接着,讓我們按“Customer Name”字段對我們的所有訂單進行分組,并按客戶的銷售額進行彙總。
按客戶進行分組
最後,我們可以像以前一樣對“Sals”整列進行求和,然後除以新的行數。在這種情況下,我的分母将是8個客戶,而不是原來的12條記錄了。結果是每個客戶$ 3,059.00除以8,等于382.38美元。
也就是,目前對“Sales”求平均值的時候,計算的粒度變了,從原來的“OrderID”,變為了“Customer Name”,
是以,抽象來說:
我們在對任何一個度量進行聚合方式計算的時候,依賴的目前次元對資料的劃分。
2、網易有數中的視圖粒度
視圖,可以簡單的了解成圖表。
在網易有數的圖表資料面闆中,有兩個區域能夠決定您這張圖表的粒度。
1 是X軸和Y軸、
2 是 屬性面闆
1、是X軸和Y軸。
比如,我在Y軸放入“地區”,X軸放入“銷售額”字段,并且“銷售額”的聚合方式選擇“平均值”
X軸Y軸
然後就會得到下面這張圖,這種圖相當于是在“地區”的粒度上,對“銷售額”取了平均值,
也就是對每個地區下的每一條記錄先求和,然後除以該地區下的記錄行數。
2、屬性面闆
屬性面闆也可以對度量進行粒度的劃分,比如你先将“利潤”和“銷售額”分别放到了X軸和Y軸上,得到下圖,因為還沒有任何次元對兩個名額做切分,代表的是所有行記錄銷售額和利潤的總和,,是以會聚合成了一個點。
當你将“訂單ID”放置到屬性面闆的【細分】欄上後,相當于對圖表增加了粒度,此時圖表就會進行了細分,展現出每個“訂單”的銷售額和利潤。
不論是X軸,Y軸,還是屬性面闆,在這些裡面放字段都會改變圖表的樣式。那有沒有一種方式能夠支援讓分析是自由的定義度量的計算粒度,不會受到目前圖表視圖的粒度影響?
這就是網易有數中的跨視圖粒度計算的功能,它的優點是您可以獨立于目前視圖用的次元來執行此計算。如果我将一個字段拖到X軸,Y軸或屬性面闆上,那麼整個視圖将會受到影響。跨視圖粒度計算允許我們設定的粒度水準,而與目前視圖無關。
跨視圖粒度計算計算表達式一共有三種,分别是:FIXED,INCLUDE,和EXCLUDE。在後續文章中,我會對這三個表達式做詳細的介紹。
網易有數,企業級大資料可視化分析平台,具有全面的安全保障、強大的大資料計算性能、先進的智能分析、便捷的協作分享等特性。可以點選這裡免費試用。
相關閱讀:
深入淺出“跨視圖粒度計算”--3、EXCLUDE表達式
深入淺出“跨視圖粒度計算”--2、INCLUDE表達式
了解 網易雲 :
網易雲官網:https://www.163yun.com/
新使用者大禮包:https://www.163yun.com/gift
網易雲社群:https://sq.163yun.com/