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 查詢生成哪些結果。它們是必須建立以調用上下文轉換的重要實體。如果要獲取不同時間段或範圍的特定結果,必須在查詢中引入過濾上下文。

缺口

Leave a Comment

在 Power Automate 中執行直到循環控制

在 Power Automate 中執行直到循環控制

了解有關 Do Until 循環控制如何在 Power Automate 流中工作的基礎過程,並熟悉所需的變量。

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

使用 Deneb 為 LuckyTemplates 製作自定義視覺對象

受限於 LuckyTemplates 中提供的標準視覺效果?學習使用 Deneb 和 Vega-Lite 為 LuckyTemplates 創建自定義視覺對象,提升您的數據可視化能力。

在 Power Automate Desktop 中將日期添加到文件名

在 Power Automate Desktop 中將日期添加到文件名

在此博客中,您將了解如何使用 Power Automate Desktop 自動將日期添加到文件名的開頭或結尾。

Power Query:如何快速添加註釋

Power Query:如何快速添加註釋

找出幾種不同的方法在 Power Query 中添加註釋,這對於不喜歡記筆記的人非常有幫助。

Power Apps – SharePoint 集成指南

Power Apps – SharePoint 集成指南

在此博客中,您將了解 MS Power Apps 界面的基礎知識並了解 Power Apps-SharePoint 集成的過程。

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

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

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

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

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

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

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

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

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

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

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

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

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

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