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,


Streudiagramm-Visualisierungen mit Charticulator

Streudiagramm-Visualisierungen mit Charticulator

In diesem Tutorial erfahren Sie, wie Sie mit Charticulator eine Streudiagramm-Visualisierung für Ihren LuckyTemplates-Bericht erstellen und entwerfen.

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

PowerApps-Suchfeld: So fügen Sie es hinzu und passen es an

Erfahren Sie, wie Sie ein PowerApps-Suchfeld von Grund auf erstellen und es an das Gesamtthema Ihrer App anpassen.

Power Automate String-Funktionen: Substring und IndexOf

Power Automate String-Funktionen: Substring und IndexOf

Erlernen Sie ganz einfach zwei komplizierte Power Automate String-Funktionen, die in Microsoft Flows verwendet werden können – die Funktionen substring und indexOf.

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Power Query M: Abwechselndes 0-1-Muster in der Datumstabelle

Dieses Tutorial konzentriert sich auf die Power Query M-Funktion „number.mod“, um ein abwechselndes 0-1-Muster in der Datumstabelle zu erstellen.

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

Prognosetechnik: Erkundung der Prognoselogik in LuckyTemplates-Modellen

In diesem Tutorial führe ich eine Prognosetechnik durch, bei der ich meine tatsächlichen Ergebnisse mit meinen Prognosen vergleiche und sie kumulativ betrachte.

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

Speichern Sie E-Mail-Anhänge in SharePoint mit Power Automate

In diesem Blog erfahren Sie, wie Sie mit Power Automate E-Mail-Anhänge automatisch in SharePoint speichern und E-Mails anschließend löschen.

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Führen Sie eine Bis-Loop-Steuerung in Power Automate durch

Erfahren Sie, wie die Do Until Schleifensteuerung in Power Automate funktioniert und welche Schritte zur Implementierung erforderlich sind.

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

Berechnen eines gleitenden Durchschnitts in LuckyTemplates mithilfe von DAX

In diesem Tutorial erfahren Sie, wie Sie mithilfe der ALLSELECTED-Funktion einen dynamischen gleitenden Durchschnitt in LuckyTemplates berechnen können.

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Berechnen Sie dynamisch eine laufende oder kumulative LuckyTemplates-Summe

Durch diesen Artikel erhalten wir ein klares und besseres Verständnis für die dynamische Berechnung einer laufenden oder kumulativen Gesamtsumme in LuckyTemplates.

Power Automate auf jede Aktion in Workflows anwenden

Power Automate auf jede Aktion in Workflows anwenden

Erfahren und verstehen Sie die Bedeutung und ordnungsgemäße Verwendung der Power Automate-Aktionssteuerung „Auf jede anwenden“ in unseren Microsoft-Workflows.