CalcDim - 圖表函數
用於維度運算式時,CalcDim() 會強制寫入引擎對於如何在內部處理運算式的自動解譯。具體而言,該功能可防止在資料模型中建立新的內部欄位。在應用程式中選取的選項會被視為來自原始資料模型的適用欄位中的選項。
此函數無法用於載入指令碼中。此外,為了系統效能的最佳實務,應盡可能透過載入指令碼將用於計算維度中的欄位載入為邏輯欄位。CalcDim()提供了一種方法,可在無法從指令碼載入計算欄位的情況下控制引擎行為。
在Qlik Sense中,維度運算式預設會實現為即時欄位,也就是說,它是一個實際欄位,顯示在目前的選取長條中,並按需建立。選取項目會套用並推斷至此欄位,類似於指令碼中的任何邏輯欄位。
包裹在 CalcDim() 中的運算式,其行為方式將與所有計算維度運算式在 QlikView 中的運作方式相同,這是一種將計算值與基礎來源欄位值進行臨時對應的方式。所有即時欄位計算都可以使用 CalcDim() 函數轉換為計算維度,因為計算維度在資料模型方面的要求比對應的即時欄位計算少。這種轉換可能是理想的,以確保所有計算維度具有相似的行為,在某些情況下,資料模型可能會阻止使用即時欄位計算,但在其他情況下則不會。
語法:
CalcDim(expr)
傳回的資料類型: 雙值
引數 | 描述 |
---|---|
expr |
用作維度的運算式,或作為維度運算式中的區段。 |
何時使用 CalcDim
CalcDim() 在您需要更精確地控制 Qlik 引擎如何處理您在維度運算式中叫用的欄位時非常有用。
依預設,當您使用自訂維度運算式時,Qlik Sense 會自動決定是否要在資料模型中建立及參考內部欄位。Qlik Sense 會在可能的情況下建立並使用這些內部欄位。如果不可能,則會參考其所依賴的現有資料模型欄位來處理運算式。
視您的使用案例而定,這種自動處理方式可能不總是理想的。舉例來說,如果您在維度運算式中使用變數,則自動建立新欄位可能會產生問題。在此情況下,請使用 CalcDim() 強制處理運算式,而不使用此方法。
以下是一些常見使用案例:
-
您已將 QlikView 內容移轉至 Qlik Sense,且您想要保留計算維度的 QlikView 處理方法。
-
您想要簡化應用程式中的選取行為。例如,您偏好將欄位選取項目顯示為原始資料模型中欄位的選取項目,而非新欄位中的選取項目。
-
您的使用案例需要一個臨時表達式以確保一致性和效能。例如,如果您的維度表達式包含使用者可控制的動態視覺化參數,例如可控制的格式設定、截止值或期間。
範例 | 結果 |
---|---|
=CalcDim(if(Year < 2023, 'Older', Year)) |
在使用此維度的視覺化中進行選取,將會處理並顯示為來自資料模型的相關聯Year欄位值中的選取項目。 反之,假設您沒有將表達式包裝在CalcDim()中。在此情況下,它會看起來像這樣: =if(Year < 2023, 'Older', Year) 在上述表達式中進行選取將會被處理並顯示為內部欄位 =if(Year < 2023, 'Older', Year) 中的選取,此欄位不在資料模型中。 |