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.
I denne opplæringen lærer du hvordanfunksjonen fungerer i DAX ved å bruke ruten Server Timings og spørringsplanen.
CROSSJOIN-funksjonen kan brukes til å lage et kartesisk produkt av to tabeller. Et kartesisk produkt er et sett med alle mulige kombinasjoner av rader fra to eller flere tabeller.
Nedenfor vil bli brukt i denne opplæringen.
Du kan se at CROSSJOIN-funksjonen resulterer i en kombinasjon av produktet Brand og Color selv om noen av disse kombinasjonene ikke finnes i . Dette resulterer i en tabell med totalt 176 rader.
I Server Timings-fanen henter den første spørringen merkevaren fra produkttabellen, mens den andre spørringen henter fargen.
I den, returnerer den første linjen resultatet i form av en tabell. Den andre og tredje linjen i produkttabellen skanner henholdsvis farge og merke.
Når dataene er mottatt, itererer Formula Engine over tabellen og produserer en kombinasjon av begge kolonnene. CrossApply i linje 2 tilsvarer funksjonen CROSSJOIN.
Innholdsfortegnelse
Filter CROSSJOIN-resultater i DAX
Du kan brukefunksjon for å filtrere resultatene av en CROSSJOIN. Du kan for eksempel bruke den til kun å vise produkter som er røde.
Husk imidlertid at du ikke kan plassere en CROSSJOIN-funksjon i et FILTER-argument .
Hvis du nå kjører denne koden og sjekker Server Timings-fanen, vil du se at filterkonteksten ikke vises som en WHERE-klausul i spørringen.
CROSSJOIN-funksjonen kan bare løses av . Koden fungerer ikke siden den kommer mellom FILTER og som er funksjoner som bare kan løses av . Dermed fikk CROSSJOIN sløyfen mellom disse to funksjonene til å bryte.
Derfor må du plassere FILTER-funksjonen i CROSSJOIN-argumentet for at filteret skal fungere.
Hvis du nå kjører denne koden og sjekker fanen Server Timings, vil du se at FILTER-funksjonen nå er representert av WHERE-leddet.
I den logiske spørreplanen kan du se at filteret VertiPaq brukes i stedet for filteroperatøren .
Dette er fordi den nye filterbetingelsen i koden kan skyves ned til Storage Engine. Etter at resultatet er returnert, utføres CROSSJOIN-argumentet inne i Formula Engine.
IN-operatøren
Du kan også brukeoperator i stedet for likhetstegnet i et FILTER-argument.
IN-operatoren kan brukes i uttrykksargumentet til FILTER-funksjonen for å filtrere en tabell basert på om en verdi finnes i en liste med verdier eller i en tabell.
Når du bruker FILTER – I kombinasjon, må DAX-motoren utføre et IsEmpty- filter som bekrefter om produktfargen er rød eller svart.
Legg til totalt salgskolonne i CROSSJOIN DAX-resultat
Andre funksjoner kan også brukes sammen med CROSSJOIN.
Du kan bruke funksjonen til å legge til en kolonne til i tabellen og deretter skrive argumentet til informasjonen du vil vise.
I dette eksemplet, la oss legge til en kolonne for totalt salg.
Når du kjører koden, vil resultatene fortsatt returnere 176 rader. Noen kombinasjoner vil imidlertid ha tomme verdier i kolonnen Totalt salg. Dette er fordi disse kombinasjonene ikke har en tilsvarende rad i Sales-tabellen.
I fanen Server Timings velger koden først merke og farge. Den oppsummerer deretter produktet av kvantitet og netto salgspris.
I dette tilfellet henter DAX-motoren først alle kombinasjonene av merke og farge som finnes inne i produkttabellen, sammen med de med en tilsvarende rad i salgstabellen. Deretter henter den merke- og fargekolonnene separat.
I den fysiske spørringsplanen kan du se to databuffere; en for merket, og en annen for fargen. Når du multipliserer deres totale rekorder, får du 176 rader.
Deretter utføres et oppslag på de 176 radene for å se om de har en tilsvarende verdi i salgstabellen. Du kan se at bare 111 rader har verdier. De andre 65 radene vil returnere blanke felter.
Dessuten, hvis du legger til flere kolonner i CROSSJOIN-argumentet, vil resultatet også returnere flere rader.
Konklusjon
DAX CROSSJOIN-funksjonen genererer en ny tabell ved å kombinere rader fra en tabell med radene fra en annen. Denne funksjonen ligner på CROSS JOIN-klausulen i SQL og kan brukes til å lage mer komplekse spørringer i datamodellen din.
Den kan generere en liste over alle mulige verdikombinasjoner fra to eller flere tabeller. Den kan også brukes til raskt å lage en ny tabell med et stort antall rader, noe som kan være nyttig for dataanalyse, testing eller ytelsesbenchmarking.
Totalt sett er CROSSJOIN-funksjonen et hendig verktøy i scenarier der du trenger å kombinere data fra flere tabeller eller generere en liste over alle mulige kombinasjoner.
Beste ønsker,
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.
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å.
Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.
I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.
Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.
Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.
I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.
I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.
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.
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.