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.

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.