DAX BERÄKNINGSTABEL Vs FILTER Funktion

Bådeochär kraftfulla verktyg för att manipulera och analysera data i DAX-fråga, men de har några viktiga skillnader som är viktiga att förstå.

I den här bloggen kommer vi att gå över funktionen CALCULATETABLE och dess , och förstå hur den skiljer sig från FILTER -funktionen. I slutet kommer du att ha en bättre förståelse för hur du väljer rätt funktion för dina dataanalysbehov.

För att demonstrera använder vi DAX-koden nedan.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

När du kör den här koden får du en tabell som visar varumärke och färg.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

På fliken Frågeplaner får du en kod som motsvarar CrossApply -operatorn i .

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Samtidigt kan du se att koden bara hämtar produktens färg och varumärke på fliken Server Timings .

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Innehållsförteckning

DAX Studio Server Timings Resultat för BERÄKNINGSTABELL

Som ett exempel, låt oss filtrera produktfärgen så att den bara visar röd och/eller svart.

Du kan göra det genom att använda FILTER-funktionen. När du kör det kommer Server Timings att visa att FILTER-argumentet inte tillämpas på .

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Men om du använder funktionen CALCULATETABLE kommer frågan på fliken Server Timings att visa att resultaten har filtrerats efter produktfärg.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

BERÄKNINGSBAR Frågeplan i DAX Studio

Låt oss titta på frågeplanen för varje funktion.

CALCULATETABLE finns på den första raden i den logiska frågeplanen eftersom det är en funktion på toppnivå i koden och därför inte beror på några krav.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

När du läser frågeplanen för en CALCULATETABLE-funktion börjar du inte med det första argumentet. Du måste först förstå filterkontexten som används. Så låt oss gå till rad 5.

Du kan se att operatören kräver produktfärgkolumnen på grund av det tillämpade filtret. Den skannar sedan denna kolumn och använder kombinationen Not IsEmpty Filter för att kontrollera produktfärgen mot varje rad.

Efter att filterkontexten har förberetts utförs argumentet.

Så här i efterhand, om du använder FILTER-funktionen, kommer du att se en annan frågeplan, så CROSSJOIN-argumentet utförs innan filterkontexten identifieras.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Nackdelen med detta tillvägagångssätt är att det inte pressar filtertillståndet till lagringsmotorn. Du kommer inte att kunna använda WHERE -satsen inuti xmSQL som kommer att lägga en tung börda på Formula Engine.

Och när du arbetar med flera tabeller blir filterkombinationen av CROSSJOIN-funktionen enorm. Detta saktar ner prestandan för DAX-koden. Därför är det i de flesta fall rekommenderat att använda funktionen Kalkyltabell.

Så istället för att utföra alla beräkningar i Formula Engine kan du injicera filtervillkoret i WHERE-klassen för XMSQL-koden.

Kontextövergång för liknande DAX-funktioner

Servertider

Detta koncept är också tillämpligt på funktionen BERÄKNA. Låt oss använda DAX-koden nedan som ett exempel.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Ett mått har automatiskt en BERÄKNA-funktion runt sig.

När du kör den här koden får du en tabell som visar det totala försäljningsbeloppet för varje färg.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

På fliken Server Timings kan du se att koden kör två frågor. Den första frågan beräknar summan av försäljningsbeloppet från försäljningstabellen med avseende på tabellen produkter.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Å andra sidan hämtar den andra frågan produktfärgen igen från tabellen Produkter. Den motsvarar funktionen i DAX-koden.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Formula Engine placerar datacachen för de två frågorna sida vid sida. Den börjar med att hämta värdena från den andra datacchen och utför sedan en uppslagning i den första datacchen.

Fråga Plan

På fliken Frågeplan skannar den logiska frågeplanen produktfärgen på grund av argumentet.

Sedan summerar VertiPaq det totala försäljningsbeloppet beroende på produktfärgen. Den utför kontextövergången som omvandlar produktens färgvärde till en likvärdig filterkontext.

DAX BERÄKNINGSTABEL Vs FILTER Funktion

Filtret som skapas av kontextövergången översätts till en DependOnCols -egenskap i frågeplanen. Efter att VertiPaq har skannat de kolumner som krävs för att beräkna den totala försäljningen multiplicerar den försäljningskvantiteten med nettopriset.

Den totala försäljningen returneras sedan som ett resultat i form av en valutadatatyp. Och slutligen returnerar ADDCOLUMNS en tabell med två kolumner som innehåller färg och total försäljning.

Slutsats

Frågeplanen kan ha en betydande inverkan på en frågas prestanda, eftersom olika frågeplaner kan ha olika effektivitetsnivåer.

När du använder funktionerna CALCULATETABLE och FILTER i en DAX-fråga, kan frågeplanen skilja sig beroende på det specifika scenariot och en mängd olika faktorer, såsom det specifika formeluttrycket som används och frågemotorns möjligheter.

I allmänhet är det en bra idé att testa och jämföra prestanda för olika frågeplaner för att avgöra det mest effektiva tillvägagångssättet för ett givet scenario.

Med vänliga hälsningar,

Leave a Comment

Skapa en datumtabell i LuckyTemplates

Skapa en datumtabell i LuckyTemplates

Ta reda på varför det är viktigt att ha en dedikerad datumtabell i LuckyTemplates och lär dig det snabbaste och mest effektiva sättet att göra det.

LuckyTemplates mobilrapporteringstips och tekniker

LuckyTemplates mobilrapporteringstips och tekniker

Denna korta handledning belyser LuckyTemplates mobilrapporteringsfunktion. Jag ska visa dig hur du kan utveckla rapporter effektivt för mobila enheter.

Professional Service Analytics-rapporter i LuckyTemplates

Professional Service Analytics-rapporter i LuckyTemplates

I denna LuckyTemplates Showcase går vi igenom rapporter som visar professionell serviceanalys från ett företag som har flera kontrakt och kundengagemang.

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Microsoft Power Platform-uppdateringar | Microsoft Ignite 2021

Gå igenom de viktigaste uppdateringarna för Power Apps och Power Automate och deras fördelar och konsekvenser för Microsoft Power Platform.

Vanliga SQL-funktioner: En översikt

Vanliga SQL-funktioner: En översikt

Upptäck några vanliga SQL-funktioner som vi kan använda som sträng, datum och några avancerade funktioner för att bearbeta eller manipulera data.

LuckyTemplates Skapa mall: Guide och tips

LuckyTemplates Skapa mall: Guide och tips

I den här handledningen kommer du att lära dig hur du skapar din perfekta LuckyTemplates-mall som är konfigurerad efter dina behov och preferenser.

Fältparametrar och små multiplar i LuckyTemplates

Fältparametrar och små multiplar i LuckyTemplates

I den här bloggen kommer vi att visa hur man lager fältparametrar med små multiplar för att skapa otroligt användbara insikter och bilder.

LuckyTemplates Rank och anpassad gruppering

LuckyTemplates Rank och anpassad gruppering

I den här bloggen kommer du att lära dig hur du använder LuckyTemplates ranknings- och anpassade grupperingsfunktioner för att segmentera en exempeldata och rangordna den enligt kriterier.

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

Visar kumulativ total endast upp till ett visst datum i LuckyTemplates

I den här handledningen kommer jag att täcka en specifik teknik kring hur man visar Kumulativ total endast upp till ett specifikt datum i dina bilder i LuckyTemplates.

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Punktdiagram: Avancerade anpassade bilder för LuckyTemplates

Lär dig hur du skapar och anpassar punktdiagram i LuckyTemplates, som huvudsakligen används för att mäta prestanda mot mål eller tidigare år.