DAX-frågor som använder variabler och viktiga funktioner

Denna handledning kommer att diskutera variabler, inklusiveochfunktioner. Du kommer att förstå hur dessa hjälper till att öka prestandan för dina DAX-frågor och ger korrekta resultat.

Variabler bör användas så mycket som möjligt eftersom de lätt kan hitta koder för optimering. De förhindrar att du får felaktiga utdata och sparar tid på att leta efter felet. Variabler hindrar dock ibland att ett värde räknas om. Så när de väl har definierats med ett värde kan det värdet inte ändras, inte ens med CALCULATE .

Det är viktigt att veta var du ska definiera och använda variabler eftersom att använda dem i och utanför en iteration kommer att generera olika resultat. De bör definieras nära där de ska användas. Detta hjälper också till att bryta ner långa koder, vilket gör dem lättare att förstå och felsöka.

Innehållsförteckning

Skapa DAX-frågor med BERÄKNA och FILTER

Det finns olika metoder för att få resultat och svar i DAX. Du måste utveckla din egen stil och flöde när du skapar din rapport så att du kan känna dig bekväm med det du arbetar med. Även om du har din egen stil måste du fortfarande följa de specifika riktlinjerna, som inkluderar att använda BERÄKNA över olika metoder som till exempel FILTER .

FILTER kan skicka mycket okomprimerad data till formelmotorn och kan potentiellt utlösa ett CallBackDataID. Mått kommer att användas här för att visa resultaten av BERÄKNA och FILTRERA . Detta har också ett definierat mått som är lokalt för frågan. Definierade mått kan inte hittas i datamodellen men de kan utveckla och felsöka dina koder snabbare.

DAX-frågor som använder variabler och viktiga funktioner

På den första raden kan du se ett mått som definierar en variabel för datumet. Det betyder att den filtrerar faktatabellen för de datum som inträffar den 31 mars 2016 eller senare. Du kan också se ett enkelt mått på den totala försäljningen som itererar tabellen Faktaförsäljning och multiplicerar kvantitet och aktuellt pris.

Nästa mått är att användainuti. Om du återkallar från CallBackDataID- modulen kommer ett CallBackDataID att skapas genom att använda ett IF i SUMX-funktionen .

DAX-frågor som använder variabler och viktiga funktioner

Detta mått filtrerar hela tabellen Faktaförsäljning. Det tar bort filtren som kommer från datumtabellen.

DAX-frågor som använder variabler och viktiga funktioner

Du måste vara försiktig när du filtrerar en hel tabell eftersom den också kommer att filtrera alla kolumner som finns på ena sidan av en-till-många-relationen.

Detta mått är detsamma som föregående mått; den enda skillnaden är att den inte filtrerar hela tabellen. Den använder SUMX för att bara iterera en filtrerad tabell.

DAX-frågor som använder variabler och viktiga funktioner

Detta är ytterligare ett mått som filtrerar tabellen Faktaförsäljning, men den här gången är det bara i kolumnen där det finns.

DAX-frågor som använder variabler och viktiga funktioner

Det sista måttet är att använda CALCULATE och datamodellen för att filtrera och hämta data.

DAX-frågor som använder variabler och viktiga funktioner

Kör och kontrollera varje åtgärd

Kör först IF- måttet. Se till att rensa cacheminnet innan du kör frågan och aktiverar Server Timings och Query Plan.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Även om det ger rätt data, är prestandan långsam på grund av CallBackDataID och de 3 varaktigheterna.

Om du kör måttet som filtrerar hela tabellen Faktaförsäljning kan du fortfarande se CallBackDataID . Det kommer också att generera 15 003 rader och ge felaktiga resultat.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

När du kör åtgärden som inte filtrerar hela tabellen Faktaförsäljning får du rätt resultat. Du kommer dock fortfarande att se CallBackDataID och de materialiserade 15 003 raderna, men har bara 7 rader med utdata.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Kör nästa mått som filtrerar på en kolumn. Du får rätt resultat och eliminerar CallBackDataID . Men du kan fortfarande se att det materialiserades många rader.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Kör måttet BERÄKNA . Du kan se att det bara materialiserades 10 rader och genererade rätt data på 5 millisekunder.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Det är den snabbaste av alla mått ovan eftersom den inte har den och drog bara 10 rader. Detta visar hur imponerande CALCULATE är när det gäller att få snabba och exakta resultat.

Om du kör alla DAX-frågor eller -mått kan du se vilken som är långsammast och snabbast baserat på varaktigheten. Du kan också se resultatet av varje åtgärd.

DAX-frågor som använder variabler och viktiga funktioner

DAX-frågor som använder variabler och viktiga funktioner

Slutsats

Genom att flytta filtren till CALCULATE sparar du tid och materialisering eftersom CallBackDataID kommer att elimineras. Du behöver inte upprepa data två gånger. Detta kommer också att maximera din DAX:s prestanda och hjälpa dig att förbättra dina utvecklingsfärdigheter.


Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.

Extrahera LuckyTemplates-teman och bilder från PBIX

Extrahera LuckyTemplates-teman och bilder från PBIX

Lär dig hur du tar isär en PBIX-fil för att extrahera LuckyTemplates-teman och bilder från bakgrunden och använda den för att skapa din rapport!

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

Excel Formler Fuskblad: Mellanvägledning

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

LuckyTemplates Kalendertabell: Vad är det och hur man använder det

Python i LuckyTemplates: Hur man installerar och ställer in

Python i LuckyTemplates: Hur man installerar och ställer in

Lär dig hur du installerar programmeringsspråket Python i LuckyTemplates och hur du använder dess verktyg för att skriva koder och visa bilder.

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Beräkna dynamiska vinstmarginaler – enkel analys av LuckyTemplates med DAX

Lär dig hur du beräknar dynamiska vinstmarginaler vid sidan av LuckyTemplates och hur du kan få fler insikter genom att gräva djupare i resultaten.

Sortering av datumtabellkolumner i LuckyTemplates

Sortering av datumtabellkolumner i LuckyTemplates

Lär dig hur du sorterar fälten från en utökad datumtabells kolumner korrekt. Detta är en bra strategi att göra för svåra fält.

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

Hitta dina bästa produkter för varje region i LuckyTemplates med DAX

I den här artikeln går jag igenom hur du kan hitta dina toppprodukter per region med hjälp av DAX-beräkningar i LuckyTemplates, inklusive TOPN- och CALCULATE-funktionerna.

Skräpdimension: Vad är det och varför det är allt annat än skräp

Skräpdimension: Vad är det och varför det är allt annat än skräp

Lär dig hur du använder en skräpdimension för flaggor med låg kardinalitet som du vill infoga i din datamodell på ett effektivt sätt.