LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

這篇文章將討論如何通過 xmSQL 和 LuckyTemplates 中的存儲引擎查詢來識別過濾器。當您過濾範圍時,您還將了解 VertiPaq 正在做什麼。這是一個重要的話題,因為過濾器中應用的基數是 DAX 性能的最大驅動力。

xmSQL 查詢是一種準續集語言,具有SELECTFROMWHERE子句。WHERE子句是您的過濾器,它是在您使用 函數時引入的。過濾器存在於邏輯查詢計劃和存儲引擎查詢計劃中。

目錄

過濾器上下文轉換

此示例查詢具有帶總銷售額的函數和基於事實銷售額的事實銷售額乘以當前價格和銷售數量。對於此示例,您只需關注大於 300 的銷售額。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

運行查詢會給你一個單行表結果,這不是很有幫助。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

但是,如果您轉至 Server Timings 選項卡並掃描,您可以看到 xmSQL 語句,它為您提供有關查詢正在執行的操作的信息。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

帶有$Expr0的WITH子句意味著正在計算一個數學表達式。接下來,從銷售數據表或事實銷售表中選擇表達式,然後在WHERE子句中根據設置的條件進行過濾。

在物理查詢計劃中,您可以看到Filter_Vertipaq運算符。這意味著查詢被下推到存儲引擎。盡可能使用存儲引擎作為過濾器,以獲得更快的 DAX 性能。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

這是另一個使用SUMX而不是CALCULATETABLE函數的示例查詢。如果您運行查詢並查看 xmSQL 語句,您可以看到相同的結果、掃描和查詢計劃。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

您可以使用SUMXCALCULATETABLE函數來生成結果。但SUMX有時可能比CALCULATETABLE慢。最好使用後者來實現更流暢的 DAX 性能。

在 LuckyTemplates 中按範圍過濾

這是一個過濾範圍的示例查詢。過濾條件獲取當前價格大於等於300小於1000的銷售數據。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

如果您運行查詢並查看 xmSQL 語句,您可以在WHERE子句中看到一個範圍。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

如果查看物理查詢計劃,您可以看到 2 Filter_Vertipaq。這是因為你的過濾器的範圍在300到1000之間。這也意味著存儲引擎正在處理查詢和計算。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

這是另一個使用OR子句的多值查詢,用“ ||表示 ”。  

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

運行查詢後,您可以看到xmSQL 語句中WHERE子句的變化。xmSQL 將OR語句轉換為IN語句。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

如果您在查詢中使用IN ,它將產生相同的 xmSQL 語句和結果。請記住,當您使用IN時,它必須是一個用大括號表示的表格。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換

但是使用ORIN子句並不重要,因為當存儲引擎讀取它時,它知道它具有相同的 xmSQL 語句。這就是它給出相同結果 $939,012 的原因。

LuckyTemplates 中的過濾器:DAX 查詢上下文轉換


LuckyTemplates DAX 教程中的篩選器上下文簡介
:上下文和計算引擎
如何在 LuckyTemplates 中使用簡單篩選器

結論

在這篇博文中,您了解瞭如何在LuckyTemplates的 DAX 中設置篩選條件。篩選器定義可以從 LuckyTemplates 中的 DAX 查詢生成哪些結果。它們是必須建立以調用上下文轉換的重要實體。如果要獲取不同時間段或範圍的特定結果,必須在查詢中引入過濾上下文。

缺口


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的