MDX 儲存格計算 - Query-Scoped 儲存格計算
適用于:SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
您可以使用多維度運算式 (MDX) 的 WITH 關鍵字,描述查詢內容中的導出資料格。 WITH 關鍵字有下列語法:
WITH CELL CALCULATION Cube_Name.CellCalc_Identifier String_Expression
CellCalc_Identifier
值是導出資料格的名稱。 String_Expression
值包含正交、一維的 MDX 集合運算式。 每個集合運算式都必須解析為下表列出的其中一種類別目錄。
類別 | 描述 |
---|---|
空集合 | 解析成空集合的 MDX 命名集運算式。 在此情況下,導出資料格的範圍是整個 Cube。 |
單一成員集合 | 解析成單一成員集合的 MDX 命名集運算式。 |
單一層級成員 | 解析成單一層級成員的 MDX 命名集運算式。 Level_Expression.Members MDX 函數是這類集合運算式的範例。 若要包括導出成員,請使用 Level_Expression.AllMembers MDX 函數。 如需詳細資訊,請參閱 AllMembers (MDX) 。 |
下階集合 | 解析為指定成員之下階的 MDX 集合運算式。 Descendants(Member_Expression, Level_Expresion, Desc_Flag) MDX 函數是這類集合運算式的範例。 如需詳細資訊,請參閱 MDX) (子系 。 |
如果 String_Expression
引數未描述維度,MDX 會假設已包含所有成員以供建構計算 Subcube。 因此,如果 String_Expression
引數是 NULL,導出資料格定義就會套用到整個 Cube。
MDX_Expression
引數包含一個 MDX 運算式,此運算式會將 String_Expression
引數中定義的所有資料格評估為資料格值。
其他考量
CONDITION 屬性指定的計算條件,MDX 只會處理一次。 這個單次處理特性提高了評估多重導出資料格定義時的效能,特別是在 Cube 傳遞之間有重疊的導出資料格時。
發生單次處理的時機,視導出資料格定義的建立範圍而定:
如果做為 Cube 的一部份建立在全域範圍,MDX 會在處理 Cube 時處理計算條件。 如果您以任何方式修改 Cube 中的資料格,而且資料格包含在導出資料格定義的計算 Subcube 中,則在重新處理 Cube 之前,計算條件可能不正確。 例如,進行回寫可能會修改資料格。 重新處理 Cube 時就會重新處理計算條件。
如果建立在工作階段範圍,那麼在工作階段期間發出陳述式時,MDX 就會處理計算條件。 與全域建立的導出資料格定義一樣,如果修改資料格的話,導出資料格定義的計算條件可能不正確。
如果建立在查詢範圍,MDX 會在查詢執行時處理計算條件。 資料格修改問題在這裏也適用,但是因為 MDX 查詢執行的處理時間很短,所以資料延遲問題會減到最少。
另一方面,每當對 Cube (涉及導出資料格定義中包含的資料格) 發出 MDX 查詢時,MDX 就會處理計算公式。 不管建立範圍為何,都會發生這個處理。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應