DAX BEREGNETABEL Vs FILTER-funksjon

Bådeoger kraftige verktøy for å manipulere og analysere data i DAX-søk, men de har noen viktige forskjeller som er viktige å forstå.

I denne bloggen skal vi gå over CALCUATETABLE -funksjonen og dens , og forstå hvordan den skiller seg fra FILTER -funksjonen. Mot slutten vil du ha en bedre forståelse av hvordan du velger riktig funksjon for dine dataanalysebehov.

For å demonstrere bruker vi DAX-koden nedenfor.

DAX BEREGNETABEL Vs FILTER-funksjon

Når du kjører denne koden, får du en tabell som viser merke og farge.

DAX BEREGNETABEL Vs FILTER-funksjon

I kategorien Spørringsplaner får du en kode som tilsvarer CrossApply- operatøren i .

DAX BEREGNETABEL Vs FILTER-funksjon

Samtidig kan du se at koden kun henter produktfarge og merke i fanen Server Timings .

DAX BEREGNETABEL Vs FILTER-funksjon

Innholdsfortegnelse

DAX Studio Server Timings Resultat for KALKULERTABELL

Som et eksempel, la oss filtrere produktfargen til kun å vise rød og/eller svart.

Du kan gjøre det ved å bruke FILTER-funksjonen. Når du kjører det, vil Server Timings vise at FILTER-argumentet ikke brukes på .

DAX BEREGNETABEL Vs FILTER-funksjon

Men hvis du bruker CALCUATETABLE-funksjonen, vil spørringen i fanen Server Timings vise at resultatene er filtrert etter produktfarge.

DAX BEREGNETABEL Vs FILTER-funksjon

Kalkylerbar Spørreplan i DAX Studio

La oss se på spørreplanen for hver funksjon.

CALCULATETABLE er på den første linjen i den logiske spørreplanen fordi det er en funksjon på toppnivå i koden og derfor ikke er avhengig av noen krav.

DAX BEREGNETABEL Vs FILTER-funksjon

Når du leser spørringsplanen til en CALCULATETABLE-funksjon, starter du ikke med det første argumentet. Du må først forstå filterkonteksten som brukes. Så la oss gå til linje 5.

Du kan se at operatøren krever produktfargekolonnen på grunn av det anvendte filteret. Den skanner deretter denne kolonnen og bruker Not IsEmpty- filterkombinasjonen for å sjekke produktfargen mot hver rad.

Etter at filterkonteksten er utarbeidet, utføres argumentet.

I ettertid, hvis du bruker FILTER-funksjonen, vil du se en annen spørringsplan, så CROSSJOIN-argumentet utføres før filterkonteksten identifiseres.

DAX BEREGNETABEL Vs FILTER-funksjon

Ulempen med denne tilnærmingen er at den ikke skyver filtertilstanden til lagringsmotoren. Du vil ikke kunne bruke WHERE- klausulen inne i xmSQL som vil legge en tung byrde på Formula Engine.

Og når du jobber med flere tabeller, vil filterkombinasjonen av CROSSJOIN-funksjonen være enorm. Dette reduserer ytelsen til DAX-koden. Derfor anbefales det i de fleste tilfeller å bruke CALCUATETABLE-funksjonen.

Så i stedet for å utføre alle beregningene i Formula Engine, kan du injisere filtertilstanden i WHERE-klassen til XMSQL-koden.

Kontekstovergang for lignende DAX-funksjoner

Servertidspunkter

Dette konseptet kan også brukes for CALCUATE-funksjonen. La oss bruke DAX-koden nedenfor som et eksempel.

DAX BEREGNETABEL Vs FILTER-funksjon

Et mål har automatisk en CALCUATE-funksjon rundt seg.

Når du kjører denne koden, får du en tabell som viser det totale salgsbeløpet for hver farge.

DAX BEREGNETABEL Vs FILTER-funksjon

I fanen Server Timings kan du se at koden utfører to spørringer. Den første spørringen beregner summen av salgsbeløpet fra salgstabellen i forhold til produkttabellen.

DAX BEREGNETABEL Vs FILTER-funksjon

På den annen side henter den andre spørringen produktfargen igjen fra produkttabellen. Den tilsvarer funksjonen i DAX-koden.

DAX BEREGNETABEL Vs FILTER-funksjon

Formula Engine plasserer databuffrene til de to spørringene side om side. Den starter med å hente verdiene fra den andre databufferen og utfører deretter et oppslag i den første databufferen.

Spørreplan

I kategorien Spørringsplan skanner den logiske spørreplanen produktfargen på grunn av argumentet.

Deretter summerer VertiPaq det totale salgsbeløpet avhengig av produktfargen. Den utfører kontekstovergangen som konverterer produktfargeverdien til en tilsvarende filterkontekst.

DAX BEREGNETABEL Vs FILTER-funksjon

Filteret opprettet av kontekstovergangen blir oversatt til en DependOnCols- egenskap i spørringsplanen. Etter at VertiPaq skanner kolonnene som kreves for å beregne totalt salg, multipliserer den salgsmengden med nettoprisen.

Totalt salg returneres deretter som et resultat i form av en valutadatatype. Og til slutt returnerer ADDCOLUMNS en tabell med to kolonner som inneholder farge og totalt salgsbeløp.

Konklusjon

Spørringsplanen kan ha en betydelig innvirkning på ytelsen til en spørring, ettersom ulike spørringsplaner kan ha ulike effektivitetsnivåer.

Når du bruker funksjonene CALCULATETABLE og FILTER i en DAX-spørring, kan spørringsplanen variere avhengig av det spesifikke scenariet og en rekke faktorer, for eksempel det spesifikke formeluttrykket som brukes og søkemotorens funksjoner.

Generelt er det en god idé å teste og sammenligne ytelsen til forskjellige spørringsplaner for å finne den mest effektive tilnærmingen for et gitt scenario.

Beste ønsker,


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.