CROSSJOIN DAX Functie: Server Timings & Query Plan

CROSSJOIN DAX Functie: Server Timings & Query Plan

In deze zelfstudie leert u hoe de functie werkt in DAX met behulp van het deelvenster Servertimings en het bijbehorende queryplan.

De functie CROSSJOIN kan worden gebruikt om een ​​Cartesiaans product van twee tabellen te maken. Een Cartesiaans product is een verzameling van alle mogelijke combinaties van rijen uit twee of meer tabellen.

De onderstaande DAX-code wordt in deze zelfstudie gebruikt.

CROSSJOIN DAX Functie: Server Timings & Query Plan

U kunt zien dat de CROSSJOIN-functie resulteert in een combinatie van het product Merk en Kleur, zelfs als sommige van deze combinaties niet voorkomen in de Feitentabel . Dit resulteert in een tabel met in totaal 176 rijen.

Op het tabblad Server Timings haalt de eerste query het merk op uit de tabel Producten, terwijl de tweede query de kleur ophaalt.

CROSSJOIN DAX Functie: Server Timings & Query Plan

CROSSJOIN DAX Functie: Server Timings & Query Plan

In het Logical Query Plan retourneert de eerste regel het resultaat in de vorm van een tabel. De tweede en derde regel in de productentabel scannen respectievelijk de kleur en het merk.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Zodra de gegevens zijn ontvangen, herhaalt de formule-engine de tabel en produceert een combinatie van beide kolommen. De CrossApply in regel 2 komt overeen met de CROSSJOIN-functie.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Inhoudsopgave

Filter CROSSJOIN-resultaten in DAX

U kunt de functie gebruiken om de resultaten van een CROSSJOIN te filteren. U kunt het bijvoorbeeld gebruiken om alleen producten weer te geven die rood zijn.

Onthoud echter dat u geen CROSSJOIN-functie binnen een FILTER-argument kunt plaatsen .

CROSSJOIN DAX Functie: Server Timings & Query Plan

Als u nu deze code uitvoert en het tabblad Server Timings controleert, ziet u dat de filtercontext niet verschijnt als een WHERE-component in de query.

CROSSJOIN DAX Functie: Server Timings & Query Plan

De functie CROSSJOIN kan alleen worden opgelost door de formule-engine . komt, functies die alleen door de Storage Engine kunnen worden opgelost . De CROSSJOIN zorgde er dus voor dat de lus tussen deze twee functies werd verbroken.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Daarom moet u de functie FILTER in het argument CROSSJOIN plaatsen om het filter te laten werken.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Als u nu deze code uitvoert en het tabblad Server Timings controleert, ziet u dat de FILTER-functie nu wordt weergegeven door de WHERE-component.

CROSSJOIN DAX Functie: Server Timings & Query Plan

In het Logical Query Plan ziet u dat in plaats van de Filteroperator de Filter VertiPaq wordt gebruikt.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Dit komt doordat de nieuwe filtervoorwaarde in de code naar de Storage Engine kan worden gepusht. Nadat het resultaat is geretourneerd, wordt het argument CROSSJOIN uitgevoerd in de formule-engine.

De IN-operator

U kunt ook de operator gebruiken in plaats van het gelijkteken in een FILTER-argument.

De operator IN kan worden gebruikt in het uitdrukkingsargument van de functie FILTER om een ​​tabel te filteren op basis van het feit of een waarde zich in een zoeklijst of in een tabel bevindt.

CROSSJOIN DAX Functie: Server Timings & Query Plan

CROSSJOIN DAX Functie: Server Timings & Query Plan

Wanneer u de combinatie FILTER – IN gebruikt , moet de DAX-engine een IsEmpty- filter uitvoeren dat bevestigt of de productkleur rood of zwart is.

Kolom totale verkoop toevoegen in CROSSJOIN DAX-resultaat

Andere functies kunnen ook samen met CROSSJOIN worden gebruikt.

gebruiken om nog een kolom aan uw tabel toe te voegen en vervolgens het argument op te schrijven van de informatie die u wilt weergeven.

Laten we in dit voorbeeld een kolom Totale verkoop toevoegen.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Wanneer u de code uitvoert, retourneren de resultaten nog steeds 176 rijen. Sommige combinaties hebben echter lege waarden in de kolom Totale verkoop. Dit komt omdat deze combinaties geen overeenkomstige rij hebben in de tabel Verkoop.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Op het tabblad Server Timings selecteert de code eerst het merk en de kleur. Vervolgens wordt het product van de hoeveelheid en de netto verkoopprijs bij elkaar opgeteld.

CROSSJOIN DAX Functie: Server Timings & Query Plan

In dit geval haalt de DAX-engine eerst alle combinaties van merk en kleur op die bestaan ​​in de tabel Producten, samen met die met een overeenkomstige rij in de tabel Verkoop. Vervolgens worden de merk- en kleurkolommen afzonderlijk opgehaald.

In het Physical Query Plan ziet u twee gegevenscaches; een voor het merk en een voor de kleur. Wanneer u hun totale records vermenigvuldigt, krijgt u 176 rijen.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Vervolgens wordt een zoekopdracht uitgevoerd op die 176 rijen om te zien of ze een overeenkomstige waarde hebben in de tabel Verkoop. U kunt zien dat slechts 111 rijen waarden hebben. De andere 65 rijen zullen blanco's retourneren.

Bovendien, als u meer kolommen toevoegt aan het CROSSJOIN-argument, zal het resultaat ook meer rijen retourneren.

CROSSJOIN DAX Functie: Server Timings & Query Plan

Conclusie

De DAX CROSSJOIN-functie genereert een nieuwe tabel door rijen uit de ene tabel te combineren met de rijen uit een andere. Deze functie is vergelijkbaar met de CROSS JOIN-clausule in SQL en kan worden gebruikt om complexere query's in uw gegevensmodel te maken.

Het kan een lijst genereren met alle mogelijke waardecombinaties uit twee of meer tabellen. Het kan ook worden gebruikt om snel een nieuwe tabel met een groot aantal rijen te maken, wat handig kan zijn voor gegevensanalyse, testen of prestatiebenchmarking.

Over het algemeen is de CROSSJOIN-functie een handig hulpmiddel in scenario's waarin u gegevens uit meerdere tabellen moet combineren of een lijst met alle mogelijke combinaties moet genereren.

Al het beste,


Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Wat is zelf in Python: voorbeelden uit de echte wereld

Een RDS-bestand opslaan en laden in R

Een RDS-bestand opslaan en laden in R

Je leert hoe je objecten uit een .rds-bestand in R opslaat en laadt. In deze blog wordt ook besproken hoe je objecten uit R naar LuckyTemplates importeert.

First N Business Days Revisited – Een DAX-coderingstaaloplossing

First N Business Days Revisited – Een DAX-coderingstaaloplossing

In deze tutorial over DAX-coderingstaal leert u hoe u de functie GENERATE gebruikt en hoe u de titel van een maat dynamisch wijzigt.

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Breng inzichten onder de aandacht met behulp van de Multi Threaded Dynamic Visuals-techniek in LuckyTemplates

Deze zelfstudie behandelt hoe u de Multi Threaded Dynamic Visuals-techniek kunt gebruiken om inzichten te creëren op basis van dynamische gegevensvisualisaties in uw rapporten.

Inleiding tot het filteren van context in LuckyTemplates

Inleiding tot het filteren van context in LuckyTemplates

In dit artikel zal ik de filtercontext doornemen. Filtercontext is een van de belangrijkste onderwerpen waarover elke LuckyTemplates-gebruiker in eerste instantie zou moeten leren.

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Beste tips voor het gebruik van de apps in LuckyTemplates Online Service

Ik wil laten zien hoe de online service LuckyTemplates Apps kan helpen bij het beheren van verschillende rapporten en inzichten die uit verschillende bronnen zijn gegenereerd.

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Analyseer winstmargeveranderingen in de loop van de tijd - analyse met LuckyTemplates en DAX

Leer hoe u wijzigingen in uw winstmarge kunt berekenen met behulp van technieken zoals vertakking van metingen en het combineren van DAX-formules in LuckyTemplates.

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Materialisatie-ideeën voor gegevenscaches in DAX Studio

Deze tutorial bespreekt de ideeën van materialisatie van datacaches en hoe deze de prestaties van DAX beïnvloeden bij het leveren van resultaten.

Zakelijke rapportage met behulp van LuckyTemplates

Zakelijke rapportage met behulp van LuckyTemplates

Als u tot nu toe nog steeds Excel gebruikt, is dit het beste moment om LuckyTemplates te gaan gebruiken voor uw zakelijke rapportagebehoeften.

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten

Wat is LuckyTemplates Gateway? Alles wat u moet weten