CROSSJOIN DAX Funktion: Server Timings & Query Plan

I den här handledningen får du lära dig hurFunktionen fungerar i DAX med hjälp av panelen Server Timings och dess frågeplan.

CROSSJOIN-funktionen kan användas för att skapa en kartesisk produkt av två tabeller. En kartesisk produkt är en uppsättning av alla möjliga kombinationer av rader från två eller flera tabeller.

Nedanstående kommer att användas i denna handledning.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Du kan se att CROSSJOIN-funktionen resulterar i en kombination av produkten Varumärke och Färg även om några av dessa kombinationer inte finns i . Detta resulterar i en tabell med totalt 176 rader.

På fliken Servertider hämtar den första frågan varumärket från tabellen Produkter, medan den andra frågan hämtar färgen.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

CROSSJOIN DAX Funktion: Server Timings & Query Plan

I den första raden returnerar resultatet i form av en tabell. Den andra och tredje raden i produkttabellen skannar färgen respektive varumärket.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

När data väl har tagits emot, itererar Formula Engine över tabellen och producerar en kombination av båda kolumnerna. CrossApply på rad 2 motsvarar funktionen CROSSJOIN.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Innehållsförteckning

Filtrera CROSSJOIN-resultat i DAX

Du kan användafunktion för att filtrera resultaten av en CROSSJOIN. Du kan till exempel använda den för att bara visa produkter som är röda.

Kom dock ihåg att du inte kan placera en CROSSJOIN-funktion i ett FILTER-argument .

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Om du nu kör den här koden och kollar fliken Servertider ser du att filterkontexten inte visas som en WHERE-sats i frågan.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

CROSSJOIN-funktionen kan endast lösas av . Koden fungerar inte eftersom den hamnar mellan FILTER och som är funktioner som bara kan lösas av . Således fick CROSSJOIN att slingan mellan dessa två funktioner bröts.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Därför måste du placera FILTER-funktionen i CROSSJOIN-argumentet för att filtret ska fungera.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Om du nu kör den här koden och kollar fliken Server Timings, ser du att FILTER-funktionen nu representeras av WHERE-satsen.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

I den logiska frågeplanen kan du se att istället för filteroperatören används Filter VertiPaq .

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Detta beror på att det nya filtervillkoret i koden kan tryckas ner till Storage Engine. Efter att resultatet har returnerats utförs sedan CROSSJOIN-argumentet inuti Formula Engine.

IN-operatören

Du kan också användaoperator istället för likhetstecknet i ett FILTER-argument.

IN-operatorn kan användas inom expressionsargumentet för FILTER-funktionen för att filtrera en tabell baserat på om ett värde finns i en värdelista eller i en tabell.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

CROSSJOIN DAX Funktion: Server Timings & Query Plan

När du använder FILTER – I kombination måste DAX-motorn utföra ett IsEmpty- filter som bekräftar om produktens färg är röd eller svart.

Lägg till kolumn Total försäljning i CROSSJOIN DAX-resultat

Andra funktioner kan också användas tillsammans med CROSSJOIN.

Du kan använda funktionen för att lägga till ytterligare en kolumn i din tabell och sedan skriva argumentet för den information du vill visa.

I det här exemplet lägger vi till kolumnen Total försäljning.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

När du kör koden kommer resultaten fortfarande att returnera 176 rader. Vissa kombinationer kommer dock att ha tomma värden i kolumnen Total försäljning. Detta beror på att dessa kombinationer inte har en motsvarande rad i tabellen Försäljning.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

På fliken Servertider väljer koden först varumärke och färg. Den summerar sedan produkten av kvantitet och försäljningsnettopris.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

I det här fallet hämtar DAX-motorn först alla kombinationer av varumärke och färg som finns i tabellen Produkter, tillsammans med de med motsvarande rad i tabellen Försäljning. Sedan hämtar den märkes- och färgkolumnerna separat.

I den fysiska frågeplanen kan du se två datacchar; en för märket och en annan för färgen. När du multiplicerar deras totala rekord får du 176 rader.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Sedan görs en uppslagning på dessa 176 rader för att se om de har ett motsvarande värde i försäljningstabellen. Du kan se att endast 111 rader har värden. De andra 65 raderna kommer att returnera tomma.

Dessutom, om du lägger till fler kolumner i CROSSJOIN-argumentet kommer resultatet också att returnera fler rader.

CROSSJOIN DAX Funktion: Server Timings & Query Plan

Slutsats

Funktionen DAX CROSSJOIN genererar en ny tabell genom att kombinera rader från en tabell med rader från en annan. Denna funktion liknar CROSS JOIN-satsen i SQL och kan användas för att skapa mer komplexa frågor i din datamodell.

Den kan generera en lista över alla möjliga värdekombinationer från två eller flera tabeller. Den kan också användas för att snabbt skapa en ny tabell med ett stort antal rader, vilket kan vara användbart för dataanalys, testning eller prestandabenchmarking.

Sammantaget är CROSSJOIN-funktionen ett praktiskt verktyg i scenarier där du behöver kombinera data från flera tabeller eller generera en lista med alla möjliga kombinationer.

Med vänliga hälsningar,


Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

I den här handledningen lär du dig hur du bygger en anpassad förklaring i en LuckyTemplates Map Visual för att visa dina föredragna färger och segmentering.

LuckyTemplates bakgrundsbild för rapporter som använder PPT

LuckyTemplates bakgrundsbild för rapporter som använder PPT

Lär dig hur du ställer in en LuckyTemplates-bakgrundsbild med PowerPoint. Detta är en av mina tekniker för att skapa mina LuckyTemplates-rapporter.

Upphandlingsbeslutsmodell och analys i LuckyTemplates

Upphandlingsbeslutsmodell och analys i LuckyTemplates

I den här handledningen kommer vi att dyka in i en del inköpsanalyser inom en organisation, med hjälp av en interagerande funktion och kraften i datamodellen.