CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

In diesem Tutorial erfahren Sie, wie die Funktion in DAX mithilfe des Server-Timings-Bereichs und seines Abfrageplans funktioniert.

Mit der CROSSJOIN-Funktion kann ein kartesisches Produkt zweier Tabellen erstellt werden. Ein kartesisches Produkt ist eine Menge aller möglichen Zeilenkombinationen aus zwei oder mehr Tabellen.

Der folgende DAX-Code wird in diesem Tutorial verwendet.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Sie können sehen, dass die CROSSJOIN-Funktion zu einer Kombination aus Marke und Farbe des Produkts führt, auch wenn einige dieser Kombinationen nicht in der Faktentabelle vorhanden sind . Daraus ergibt sich eine Tabelle mit insgesamt 176 Zeilen.

Auf der Registerkarte „Server-Timings“ ruft die erste Abfrage die Marke aus der Produkttabelle ab, während die zweite Abfrage die Farbe abruft.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Im Logical Query Plan gibt die erste Zeile das Ergebnis in Form einer Tabelle zurück. Die zweite und dritte Zeile in der Produkttabelle scannen jeweils die Farbe und die Marke.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Sobald die Daten empfangen wurden, durchläuft die Formel-Engine die Tabelle und erstellt eine Kombination beider Spalten. Das CrossApply in Zeile 2 entspricht der CROSSJOIN-Funktion.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Inhaltsverzeichnis

CROSSJOIN-Ergebnisse im DAX filtern

Funktion können Sie die Ergebnisse eines CROSSJOIN filtern. Sie können es beispielsweise verwenden, um nur Produkte anzuzeigen, die rot sind.

Bedenken Sie jedoch, dass Sie eine CROSSJOIN-Funktion nicht in ein FILTER-Argument einfügen können .

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Wenn Sie nun diesen Code ausführen und die Registerkarte „Server-Timings“ überprüfen, werden Sie feststellen, dass der Filterkontext nicht als WHERE-Klausel in der Abfrage angezeigt wird.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Die CROSSJOIN-Funktion kann nur von der Formel-Engine aufgelöst werden . liegt, bei denen es sich um Funktionen handelt, die nur von der Storage Engine aufgelöst werden können . Daher führte CROSSJOIN dazu, dass die Schleife zwischen diesen beiden Funktionen unterbrochen wurde.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Daher müssen Sie die FILTER-Funktion innerhalb des CROSSJOIN-Arguments platzieren, damit der Filter funktioniert.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Wenn Sie nun diesen Code ausführen und die Registerkarte „Server-Timings“ überprüfen, werden Sie feststellen, dass die FILTER-Funktion jetzt durch die WHERE-Klausel dargestellt wird.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Im logischen Abfrageplan können Sie sehen, dass anstelle des Filteroperators der Filter VertiPaq verwendet wird.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Dies liegt daran, dass die neue Filterbedingung im Code an die Storage Engine weitergegeben werden kann. Nachdem das Ergebnis zurückgegeben wurde, wird das CROSSJOIN-Argument innerhalb der Formel-Engine ausgeführt.

Der IN-Operator

Sie können in einem FILTER-Argument auch den Operator anstelle des Gleichheitszeichens verwenden.

Der IN-Operator kann im Ausdrucksargument der FILTER-Funktion verwendet werden, um eine Tabelle danach zu filtern, ob ein Wert in einer Werteliste oder in einer Tabelle enthalten ist.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Wenn Sie die Kombination FILTER – IN verwenden , muss die DAX-Engine einen IsEmpty- Filter durchführen, der bestätigt, ob die Produktfarbe Rot oder Schwarz ist.

Spalte „Gesamtumsatz“ im CROSSJOIN DAX-Ergebnis hinzufügen

Zusammen mit CROSSJOIN können auch andere Funktionen genutzt werden.

Sie können die Funktion verwenden , um Ihrer Tabelle eine weitere Spalte hinzuzufügen und dann das Argument der Informationen zu schreiben, die Sie anzeigen möchten.

In diesem Beispiel fügen wir eine Spalte „Gesamtumsatz“ hinzu.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Wenn Sie den Code ausführen, werden als Ergebnisse immer noch 176 Zeilen zurückgegeben. Bei einigen Kombinationen sind jedoch leere Werte in der Spalte „Gesamtumsatz“ enthalten. Dies liegt daran, dass diese Kombinationen keine entsprechende Zeile in der Tabelle „Sales“ haben.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Auf der Registerkarte „Server-Timings“ wählt der Code zunächst die Marke und die Farbe aus. Anschließend wird das Produkt aus Menge und Nettoverkaufspreis summiert.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

In diesem Fall ruft die DAX-Engine zunächst alle Kombinationen aus Marke und Farbe ab, die in der Tabelle „Products“ vorhanden sind, zusammen mit denen mit einer entsprechenden Zeile in der Tabelle „Sales“. Anschließend werden die Marken- und Farbspalten separat abgerufen.

Im physischen Abfrageplan können Sie zwei Datencaches sehen; eine für die Marke und eine für die Farbe. Wenn Sie die Gesamtzahl der Datensätze multiplizieren, erhalten Sie 176 Zeilen.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Anschließend wird eine Suche in diesen 176 Zeilen durchgeführt, um zu sehen, ob sie einen entsprechenden Wert in der Tabelle „Sales“ haben. Sie sehen, dass nur 111 Zeilen Werte haben. Die anderen 65 Zeilen geben Leerzeichen zurück.

Wenn Sie außerdem weitere Spalten im CROSSJOIN-Argument hinzufügen, gibt das Ergebnis auch mehr Zeilen zurück.

CROSSJOIN DAX-Funktion: Server-Timings und Abfrageplan

Abschluss

Die DAX CROSSJOIN-Funktion generiert eine neue Tabelle, indem sie Zeilen aus einer Tabelle mit den Zeilen aus einer anderen kombiniert. Diese Funktion ähnelt der CROSS JOIN-Klausel in SQL und kann zum Erstellen komplexerer Abfragen in Ihrem Datenmodell verwendet werden.

Es kann eine Liste aller möglichen Wertekombinationen aus zwei oder mehr Tabellen generieren. Es kann auch verwendet werden, um schnell eine neue Tabelle mit einer großen Anzahl von Zeilen zu erstellen, was für Datenanalysen, Tests oder Leistungsbenchmarking nützlich sein kann.

Insgesamt ist die CROSSJOIN-Funktion ein praktisches Werkzeug in Szenarien, in denen Sie Daten aus mehreren Tabellen kombinieren oder eine Liste aller möglichen Kombinationen erstellen müssen.

Alles Gute,


So speichern und laden Sie eine RDS-Datei in R

So speichern und laden Sie eine RDS-Datei in R

Sie erfahren, wie Sie Objekte aus einer .rds-Datei in R speichern und laden. In diesem Blog wird auch behandelt, wie Sie Objekte aus R in LuckyTemplates importieren.

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

Was ist Self in Python: Beispiele aus der Praxis

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

First N Business Days Revisited – Eine DAX-Codierungssprachenlösung

In diesem Tutorial zur DAX-Codierungssprache erfahren Sie, wie Sie die GENERATE-Funktion verwenden und einen Kennzahltitel dynamisch ändern.

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

Präsentieren Sie Einblicke mithilfe der Multi-Threaded-Dynamic-Visuals-Technik in LuckyTemplates

In diesem Tutorial erfahren Sie, wie Sie mithilfe der Multi-Threaded-Dynamic-Visuals-Technik Erkenntnisse aus dynamischen Datenvisualisierungen in Ihren Berichten gewinnen.

Einführung in den Filterkontext in LuckyTemplates

Einführung in den Filterkontext in LuckyTemplates

In diesem Artikel werde ich den Filterkontext durchgehen. Der Filterkontext ist eines der Hauptthemen, über die sich jeder LuckyTemplates-Benutzer zunächst informieren sollte.

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Beste Tipps zur Verwendung der Apps im LuckyTemplates-Onlinedienst

Ich möchte zeigen, wie der LuckyTemplates Apps-Onlinedienst bei der Verwaltung verschiedener Berichte und Erkenntnisse aus verschiedenen Quellen helfen kann.

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Analysieren Sie Gewinnmargenänderungen im Laufe der Zeit – Analysen mit LuckyTemplates und DAX

Erfahren Sie, wie Sie Ihre Gewinnmargenänderungen mithilfe von Techniken wie Kennzahlenverzweigung und der Kombination von DAX-Formeln in LuckyTemplates ermitteln.

Materialisierungsideen für Datencaches in DAX Studio

Materialisierungsideen für Datencaches in DAX Studio

In diesem Tutorial werden die Ideen der Materialisierung von Datencaches und deren Auswirkungen auf die Leistung von DAXs bei der Bereitstellung von Ergebnissen erläutert.

Geschäftsberichte mit LuckyTemplates

Geschäftsberichte mit LuckyTemplates

Wenn Sie bisher noch Excel verwenden, ist dies der beste Zeitpunkt, LuckyTemplates für Ihre Geschäftsberichtsanforderungen zu verwenden.

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst

Was ist LuckyTemplates Gateway? Alles was du wissen musst