DAX BEREGNETABEL Vs FILTER Funktion

Beggeoger kraftfulde værktøjer til at manipulere og analysere data i DAX-forespørgsler, men de har nogle vigtige forskelle, som er vigtige at forstå.

I denne blog vil vi gennemgå funktionen CALCUATETABLE og dens , og forstå, hvordan den adskiller sig fra FILTER -funktionen. Til sidst vil du have en bedre forståelse af, hvordan du vælger den rigtige funktion til dine dataanalysebehov.

For at demonstrere bruger vi DAX-koden nedenfor.

DAX BEREGNETABEL Vs FILTER Funktion

Når du kører denne kode, får du en tabel, der viser mærke og farve.

DAX BEREGNETABEL Vs FILTER Funktion

På fanen Forespørgselsplaner får du en kode, der svarer til CrossApply- operatoren i .

DAX BEREGNETABEL Vs FILTER Funktion

Samtidig kan du se, at koden kun henter produktfarve og mærke i fanen Server Timings .

DAX BEREGNETABEL Vs FILTER Funktion

Indholdsfortegnelse

DAX Studio Server Timings Resultat for KALKULATTABEL

Lad os som et eksempel filtrere produktfarven til kun at vise rød og/eller sort.

Det kan du gøre ved at bruge FILTER-funktionen. Når du kører det, vil servertimingerne vise, at FILTER-argumentet ikke anvendes på .

DAX BEREGNETABEL Vs FILTER Funktion

Men hvis du bruger funktionen CALCULATETABLE, vil forespørgslen på fanen Server Timings vise, at resultaterne er blevet filtreret efter produktfarve.

DAX BEREGNETABEL Vs FILTER Funktion

BEREGNETABEL Forespørgselsplan i DAX Studio

Lad os se på forespørgselsplanen for hver funktion.

CALCULATETABLE er på den første linje i den logiske forespørgselsplan, fordi det er en funktion på øverste niveau i koden og derfor ikke afhænger af nogen krav.

DAX BEREGNETABEL Vs FILTER Funktion

Når du læser forespørgselsplanen for en CALCULATETABLE-funktion, starter du ikke med det første argument. Du skal først forstå den anvendte filterkontekst. Så lad os gå til linje 5.

Du kan se, at operatøren kræver produktfarvekolonnen på grund af det anvendte filter. Den scanner derefter denne kolonne og bruger kombinationen Not IsEmpty Filter til at kontrollere produktfarven mod hver række.

Efter at filterkonteksten er blevet forberedt, udføres argumentet.

Set i bakspejlet, hvis du bruger FILTER-funktionen, vil du se en anden forespørgselsplan, så CROSSJOIN-argumentet udføres før identifikation af filterkonteksten.

DAX BEREGNETABEL Vs FILTER Funktion

Ulempen ved denne tilgang er, at den ikke skubber filtertilstanden til Storage Engine. Du vil ikke være i stand til at bruge WHERE -klausulen inde i xmSQL, som vil lægge en tung byrde på Formula Engine.

Og når du arbejder med flere tabeller, vil filterkombinationen af ​​CROSSJOIN-funktionen være enorm. Dette sænker ydeevnen af ​​DAX-koden. Derfor anbefales det i de fleste tilfælde at bruge funktionen CALCUATETABLE.

Så i stedet for at udføre alle beregningerne i Formula Engine, kan du injicere filterbetingelsen inde i WHERE-klassen i XMSQL-koden.

Kontekstovergang for lignende DAX-funktioner

Server timings

Dette koncept er også anvendeligt til CALCUATE-funktionen. Lad os bruge DAX-koden nedenfor som et eksempel.

DAX BEREGNETABEL Vs FILTER Funktion

Et mål har automatisk en CALCUATE-funktion omkring sig.

Når du kører denne kode, får du en tabel, der viser det samlede salgsbeløb for hver farve.

DAX BEREGNETABEL Vs FILTER Funktion

På fanen Server Timings kan du se, at koden udfører to forespørgsler. Den første forespørgsel beregner summen af ​​salgsbeløbet fra salgstabellen i forhold til tabellen produkter.

DAX BEREGNETABEL Vs FILTER Funktion

På den anden side henter den anden forespørgsel produktfarven igen fra tabellen Produkter. Det svarer til funktionen i DAX-koden.

DAX BEREGNETABEL Vs FILTER Funktion

Formula Engine placerer datacachene for de to forespørgsler side om side. Den starter med at hente værdierne fra den anden datacache og udfører derefter et opslag i den første datacache.

Forespørgselsplan

På fanen Forespørgselsplan scanner den logiske forespørgselsplan produktfarven på grund af argumentet.

Derefter opsummerer VertiPaq det samlede salgsbeløb afhængigt af produktfarven. Den udfører kontekstovergangen, der konverterer produktfarveværdien til en tilsvarende filterkontekst.

DAX BEREGNETABEL Vs FILTER Funktion

Filteret, der oprettes af kontekstovergangen, oversættes til en DependOnCols -egenskab i forespørgselsplanen. Efter at VertiPaq har scannet de kolonner, der er nødvendige for at beregne det samlede salg, ganges salgsmængden med nettoprisen.

Det samlede salg returneres derefter som et resultat i form af en valutadatatype. Og til sidst returnerer ADDCOLUMNS en tabel med to kolonner, der indeholder farven og det samlede salgsbeløb.

Konklusion

Forespørgselsplanen kan have en væsentlig indflydelse på en forespørgsels ydeevne, da forskellige forespørgselsplaner kan have forskellige effektivitetsniveauer.

Når du bruger funktionerne CALCULATETABLE og FILTER i en DAX-forespørgsel, kan forespørgselsplanen variere afhængigt af det specifikke scenarie og en række faktorer, såsom det specifikke formeludtryk, der bruges, og forespørgselsmotorens muligheder.

Generelt er det en god idé at teste og sammenligne ydeevnen af ​​forskellige forespørgselsplaner for at bestemme den mest effektive tilgang til et givet scenarie.

Alt det bedste,

Leave a Comment

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Oprettelse af en datotabel i LuckyTemplates

Oprettelse af en datotabel i LuckyTemplates

Find ud af, hvorfor det er vigtigt at have en dedikeret datotabel i LuckyTemplates, og lær den hurtigste og mest effektive måde at gøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte vejledning fremhæver LuckyTemplates mobilrapporteringsfunktion. Jeg vil vise dig, hvordan du kan udvikle rapporter effektivt til mobilenheder.

Professionelle serviceanalyserapporter i LuckyTemplates

Professionelle serviceanalyserapporter i LuckyTemplates

I denne LuckyTemplates Showcase gennemgår vi rapporter, der viser professionel serviceanalyse fra et firma, der har flere kontrakter og kundeengagementer.

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Microsoft Power Platform-opdateringer | Microsoft Ignite 2021

Gå gennem de vigtigste opdateringer til Power Apps og Power Automate og deres fordele og implikationer for Microsoft Power Platform.

Almindelige SQL-funktioner: En oversigt

Almindelige SQL-funktioner: En oversigt

Opdag nogle almindelige SQL-funktioner, som vi kan bruge, såsom streng, dato og nogle avancerede funktioner til at behandle eller manipulere data.

LuckyTemplates skabelonoprettelse: Guide og tips

LuckyTemplates skabelonoprettelse: Guide og tips

I denne tutorial lærer du, hvordan du opretter din perfekte LuckyTemplates-skabelon, der er konfigureret til dine behov og præferencer.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne blog vil vi demonstrere, hvordan man lagdelte feltparametre med små multipler for at skabe utrolig nyttig indsigt og visuals.

LuckyTemplates-rangering og brugerdefineret gruppering

LuckyTemplates-rangering og brugerdefineret gruppering

I denne blog vil du lære, hvordan du bruger LuckyTemplates rangerings- og brugerdefinerede grupperingsfunktioner til at segmentere et eksempeldata og rangordne det efter kriterier.

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

Viser kun kumulativ total op til en bestemt dato i LuckyTemplates

I denne tutorial vil jeg dække en specifik teknik omkring, hvordan du kun viser Kumulativ Total op til en bestemt dato i dine visuals i LuckyTemplates.