使用聚合函數
適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
當維度用來配量量值時,量值會沿著該維度所包含的階層摘要。 總和行為取決於為量值指定的聚合函數。 對於包含數值數據的大部分量值,聚合函數會 Sum。 量值的值會根據階層的作用中層級,加總到不同的數量。
在 Analysis Services 中,您所建立的每個量值都會由決定量值作業的聚合函數所支援。 預先定義的匯總類型包括 Sum、Min、Max、Count、Distinct Count,以及其他數個更特殊的函式。 或者,如果您需要以複雜或自定義公式為基礎的匯總,您可以建置 MDX 計算,而不是使用預先建置的聚合函數。 例如,如果您想要定義百分比值的量值,您可以使用匯出量值在 MDX 中執行此動作。 請參閱 CREATE MEMBER 語句 (MDX)。
透過 Cube 精靈建立的量值會指派匯總類型做為量值定義的一部分。 假設源數據行包含數值數據,匯總類型一律 Sum。 不論源數據行的數據類型為何,Sum 都會指派。 例如,如果您使用 Cube 精靈來建立量值,而且從事實數據表提取所有數據行,您就會注意到,即使來源是日期時間數據行,所有產生的量值都有 Sum匯總。 請一律檢閱預先指派的匯總方法,以取得透過精靈建立的量值,以確定匯總函式適合。
您可以透過 SQL Server Data Tools - Business Intelligence 或 MDX,在 Cube 定義中指派或變更匯總方法。 如需進一步指示,請參閱 在多維度模型中建立量值和量值群組 或 匯總 (MDX)。
聚合函數
SQL Server Analysis Services 提供函式來匯總量值群組中包含的維度。 聚合函數的 附加性 會決定如何跨 Cube 中的所有維度匯總量值。 聚合函數分為三個附加性層級:
添加劑
附加量值也稱為完全加總量值,可以沿著包含量值的量值群組中包含的所有維度進行匯總,而不受限制。
半加總
半加總量值可以沿著包含量值的量值群組中所含的一些維度匯總,但並非全部。 例如,代表庫存可用數量的量值可以沿著地理維度匯總,以產生所有倉儲可用的總數量,但是量值無法沿著時間維度匯總,因為量值代表可用的數量週期快照集。 沿著時間維度匯總這類量值會產生不正確的結果。 如需詳細資訊,請參閱 定義半加總行為。
非加總
非加總量值無法沿著包含量值的量值群組中的任何維度匯總。 相反地,必須針對代表量值之 Cube 中的每個儲存格個別計算量值。 例如,傳回百分比的導出量值,例如獲利率,無法從任何維度中子成員的百分比值匯總。
下表列出 SQL Server Analysis Services 中的聚合函數,並描述函式的附加性和預期輸出。
聚合函數 | 附加性 | 傳回的值 |
---|---|---|
Sum | 添加劑 | 計算所有子成員的值總和。 這是預設聚合函數。 |
計數 | 添加劑 | 擷取所有子成員的計數。 |
分鐘 | 半加總 | 擷取所有子成員的最低值。 |
Max | 半加總 | 擷取所有子成員的最高值。 |
DistinctCount | 非加總 | 擷取所有唯一子成員的計數。 如需詳細資訊,請參閱下一節 關於相異計數量值。 |
無 | 非加總 | 不會執行匯總,而且維度中分葉和非分葉成員的所有值都會直接從包含量值的量值群組提供事實數據表。 如果無法從成員的事實數據表讀取任何值,該成員的值會設定為 null。 |
ByAccount | 半加總 | 根據指派給帳戶維度中成員之帳戶類型的聚合函數,計算匯總。 如果量值群組中沒有帳戶類型維度,則視為 [無] 聚合函數 如需帳戶維度的詳細資訊,請參閱 建立父子類型維度的財務帳戶。 |
AverageOfChildren | 半加總 | 計算所有非空白子成員的值平均值。 |
FirstChild | 半加總 | 擷取第一個子成員的值。 |
LastChild | 半加總 | 擷取最後一個子成員的值。 |
FirstNonEmpty | 半加總 | 擷取第一個非空白子成員的值。 |
LastNonEmpty | 半加總 | 擷取最後一個非空白子成員的值。 |
關於相異計數量值
具有
相異計數量值通常用來判斷維度的每個成員在事實數據表中共用另一個維度數據列相異、最低層級的成員數目。 例如,在銷售 Cube 中,針對每個客戶和客戶群組,已購買多少個不同的產品? (也就是說,對於 Customers 維度的每個成員,產品維度的每個成員在事實數據表中共用數據列有多少個相異、最低層級的成員?或者,例如,在因特網網站流覽 Cube 中,針對每個網站訪客和網站訪客群組,流覽因特網網站上有多少個不同的頁面? (也就是說,對於網站訪客維度的每個成員,Pages 維度的每個成員共用事實數據表中的數據列數目不同、最低層級的成員?在這些範例中,第二個維度的最低層級成員會依相異計數量值來計算。
這種分析不限於兩個維度。 事實上,不同的計數量值可以透過 Cube 中的任何維度組合來分隔和配量,包括包含已計算成員的維度。
計算成員的相異計數量值是以事實數據表中的外鍵數據行為基礎。 (也就是說,量值 源數據行 屬性會識別此數據行。此數據行會聯結維度數據表數據行,以識別相異計數量值所計算的成員。