當前位置:外匯行情大全網 - 期貨行情 - DAX:從入門到掌握3-4-1了解濾鏡功能

DAX:從入門到掌握3-4-1了解濾鏡功能

過濾函數很簡單:傳入壹個表,然後返回壹個與原表列相同的表,但只保留符合條件的行。

過濾器的語法如下:

filter函數對表進行叠代,每壹行都會判斷是否滿足條件,然後返回壹個布爾值。當條件為真時,過濾器返回該行,否則跳過該行。

註意:

從邏輯的角度來看,filter函數對表的每壹行執行條件判斷。但是DAX在執行判斷時會使用優化的處理方法,會使用消除重復列的方法來減少判斷的次數。判斷的數據實際上等於過濾函數處理的表的粒度。這個粒度決定了過濾函數的性能,也是DAX優化的壹個重要點。

例如,以下查詢僅選擇brand = "Fabrikam ":

您可以將篩選函數嵌套在篩選函數中,因為您可以使用表函數作為篩選的參數。該篩選器首先執行最內層的篩選器。通常,嵌套兩個篩選器會產生相同的結果,並且AND函數中包含的邏輯條件組合也是相同的。也就是說,以下語句將得到相同的結果:

但是當table表包含很多行或者非常復雜時,兩個公式的性能會有很大差距。例如,以下查詢返回fabrikm的產品,其價格是成本的三倍。

這樣的查詢會將這兩個條件添加到product表的所有行中進行判斷。因此,妳可以改變它。如果妳有兩個條件,其中壹個更快更容易運行,妳可以先用嵌套形式的filter處理這個filter條件。比如說。在下面的查詢中,首先過濾價格和成本,然後過濾brand =' fabricam ',最後得出結果。

如果調整順序,執行順序也會調整。如下,先過濾‘Fabricam’,再過濾價格和成本。

這對於DAX表達式的優化非常有用。您可以選擇先運行更高效的過濾條件。但是,在沒有完全掌握上下文的情況下,不要開始用這種方法來優化語句。在16章,我們會深入討論這個優化。這個案例的作用只是讓妳意識到嵌套時的操作順序。

重點關註:

通常,對於嵌套函數,順序總是從最裏面開始,然後到最外面。但由於參數的特殊賦值條件,計算不同於可計算表。很多情況下,我們會在類似的情況下使用filter和calculatetable函數,使用時要註意它們的區別。

  • 上一篇:ccl持倉異動指標對股票有用嗎
  • 下一篇:期貨從業考試經驗分享,有哪些學習方法?
  • copyright 2024外匯行情大全網