什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
本教程將討論變量,包括和CALCULATE函數。您將了解這些如何幫助提高 DAX 查詢的性能並提供準確的結果。
盡量使用變量,因為變量可以方便地定位代碼進行優化。它們可以防止您獲得不正確的輸出並節省您查找錯誤的時間。但是,變量有時會阻止重新計算值。因此,一旦用值定義了它們,就無法更改該值,即使通過CALCULATE也無法更改。
知道應該在哪裡定義和使用變量很重要,因為在迭代內部和外部使用它們會產生不同的結果。它們的定義應該靠近它們將被使用的地方。這也有助於分解長代碼,使它們更易於理解和調試。
目錄
使用 CALCULATE 和 FILTER 創建 DAX 查詢
在 DAX 中獲取結果和答案有不同的方法。您需要在創建報告時形成自己的風格和流程,這樣您才能對自己的工作感到滿意。即使您有自己的風格,您仍然必須遵循特定的準則,其中包括對FILTER等不同方法使用CALCULATE。
FILTER可能會向公式引擎發送大量未壓縮的數據,並可能觸發 CallBackDataID 。此處將使用度量來顯示CALCULATE和FILTER的結果。這也有一個定義的度量,該度量是查詢的本地。在數據模型中找不到已定義的度量,但它們可以更快地開發和排除代碼故障。
在第一行中,您可以看到一個為日期定義變量的度量。這意味著它針對 2016 年 3 月 31 日或之後發生的日期篩選事實表。您還可以看到總銷售額的簡單度量,它迭代事實銷售額表並將數量和當前價格相乘。
下一個措施是在。如果您回憶起CallBackDataID模塊,在 SUMX 函數中使用 IF 將創建一個CallBackDataID。
此度量正在篩選整個 Fact Sales 表。它刪除來自日期表的過濾器。
過濾整個表時必須小心,因為它還會過濾一對多關係一側的所有列。
這項措施與之前的措施相同;唯一的區別是它不會過濾整個表格。它使用SUMX僅迭代過濾表。
這是過濾 Fact Sales 表的另一個度量,但這次它只在它所在的列上。
最後一項措施是使用CALCULATE和數據模型來過濾和檢索數據。
運行並檢查每項措施
首先,運行IF測量。確保在運行查詢之前清除緩存並打開服務器計時和查詢計劃。
雖然它提供了正確的數據,但由於CallBackDataID和 3 個持續時間,性能很慢。
如果您運行過濾整個 Fact Sales 表的度量,您仍然可以看到CallBackDataID。它還將生成 15,003 行並提供不正確的結果。
當���運行未篩選所有 Fact Sales 表的度量時,您將獲得正確的結果。但是,您仍然會看到CallBackDataID和具體化的 15,003 行,但只有 7 行輸出。
運行對列進行篩選的下一個度量。您將獲得正確的結果並消除CallBackDataID。但是您仍然可以看到它具體化了很多行。
運行計算度量。您可以看到它只具體化了 10 行並在 5 毫秒內生成了正確的數據。
它是上述所有措施中最快的,因為它沒有 CallBackDataID並且 只拉取了 10 行。這表明CALCULATE在獲得快速和精確的結果方面是多麼令人印象深刻。
如果您運行所有 DAX 查詢或度量,您可以根據持續時間查看哪個最慢和最快。您還可以查看每個度量的結果。
結論
通過將過濾器移至 CALCULATE,您將節省時間和具體化,因為 CallBackDataID將被消除。您不必重複數據兩次。這還將最大限度地提高 DAX 的性能並幫助您提高開發技能。
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的