Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

W tym samouczku dowiesz się, jak funkcja działa w języku DAX przy użyciu okienka chronometrażu serwera i jego planu zapytań.

Funkcji CROSSJOIN można użyć do stworzenia iloczynu kartezjańskiego dwóch tabel. Produkt kartezjański to zbiór wszystkich możliwych kombinacji wierszy z dwóch lub więcej tabel.

Poniższy kod języka DAX zostanie użyty w tym samouczku.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Jak widać, funkcja CROSSJOIN daje w wyniku kombinację Marki i Koloru produktu, nawet jeśli niektóre z tych kombinacji nie istnieją w tabeli faktów . Daje to tabelę zawierającą łącznie 176 wierszy.

Na karcie Czasy serwera pierwsze zapytanie pobiera markę z tabeli Produkty, podczas gdy drugie zapytanie pobiera kolor.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

W Logicznym planie zapytań pierwsza linia zwraca wynik w postaci tabeli. Drugi i trzeci wiersz w tabeli produktów skanuje odpowiednio kolor i markę.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Gdy dane zostaną odebrane, Formuła Engine iteruje po tabeli i tworzy kombinację obu kolumn. Funkcja CrossApply w wierszu 2 odpowiada funkcji CROSSJOIN.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Spis treści

Filtruj wyniki CROSSJOIN w języku DAX

Możesz użyć funkcji , aby przefiltrować wyniki CROSSJOIN. Na przykład możesz go użyć do pokazania tylko produktów, które są czerwone.

Pamiętaj jednak, że nie możesz umieścić funkcji CROSSJOIN w argumencie FILTR .

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Teraz, jeśli uruchomisz ten kod i sprawdzisz kartę Czasy serwera, zobaczysz, że kontekst filtru nie pojawia się jako klauzula WHERE w zapytaniu.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Funkcja CROSSJOIN może zostać rozwiązana tylko przez silnik formuł . Kod nie działa, ponieważ znajduje się pomiędzy FILTER i , które są funkcjami, które mogą być rozwiązane tylko przez Storage Engine . W ten sposób CROSSJOIN spowodował przerwanie pętli między tymi dwiema funkcjami.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Dlatego musisz umieścić funkcję FILTER w argumencie CROSSJOIN, aby filtr działał.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Teraz, jeśli uruchomisz ten kod i sprawdzisz kartę Czasy serwera, zobaczysz, że funkcja FILTER jest teraz reprezentowana przez klauzulę WHERE.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

W planie kwerend logicznych widać, że zamiast operatora filtru używany jest filtr VertiPaq .

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Wynika to z faktu, że nowy warunek filtru w kodzie można przekazać do silnika pamięci masowej. Po zwróceniu wyniku argument CROSSJOIN jest następnie wykonywany wewnątrz silnika formuł.

Operator IN

Możesz także użyć operatora zamiast znaku równości w argumencie FILTR.

Operatora IN można użyć w argumencie wyrażenia funkcji FILTER w celu filtrowania tabeli na podstawie tego, czy wartość jest zawarta na liście wartości, czy w tabeli.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

W przypadku użycia kombinacji FILTER – IN silnik języka DAX musi wykonać filtr IsEmpty , który potwierdza, czy kolor produktu jest czerwony, czy czarny.

Dodaj kolumnę Total Sales w wyniku CROSSJOIN DAX

Inne funkcje mogą być również używane razem z CROSSJOIN.

Możesz użyć funkcji , aby dodać kolejną kolumnę do tabeli, a następnie wpisać argument informacji, które chcesz wyświetlić.

W tym przykładzie dodajmy kolumnę Total Sales.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Po uruchomieniu kodu wyniki nadal będą zwracać 176 wierszy. Jednak niektóre kombinacje będą miały puste wartości w kolumnie Total Sales. Dzieje się tak, ponieważ te kombinacje nie mają odpowiedniego wiersza w tabeli Sales.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Na karcie Chronometraż serwera kod najpierw wybiera markę i kolor. Następnie sumuje iloczyn ilości i ceny sprzedaży netto.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

W takim przypadku aparat języka DAX najpierw pobiera wszystkie kombinacje marki i koloru, które istnieją w tabeli Produkty, wraz z odpowiadającymi im wierszami w tabeli Sprzedaż. Następnie oddzielnie pobiera kolumny marki i koloru.

W planie zapytań fizycznych można zobaczyć dwie pamięci podręczne danych; jeden dla marki, a drugi dla koloru. Gdy pomnożysz ich łączne rekordy, otrzymasz 176 wierszy.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Następnie przeprowadzane jest wyszukiwanie tych 176 wierszy, aby sprawdzić, czy mają one odpowiednią wartość w tabeli Sales. Jak widać, tylko 111 wierszy zawiera wartości. Pozostałe 65 wierszy zwróci puste miejsca.

Co więcej, jeśli dodasz więcej kolumn w argumencie CROSSJOIN, wynik zwróci również więcej wierszy.

Funkcja CROSSJOIN DAX: chronometraż serwera i plan zapytań

Wniosek

Funkcja DAX CROSSJOIN generuje nową tabelę, łącząc wiersze z jednej tabeli z wierszami z innej. Ta funkcja jest podobna do klauzuli CROSS JOIN w SQL i może być używana do tworzenia bardziej złożonych zapytań w modelu danych.

Może wygenerować listę wszystkich możliwych kombinacji wartości z dwóch lub więcej tabel. Można go również użyć do szybkiego utworzenia nowej tabeli z dużą liczbą wierszy, co może być przydatne do analizy danych, testowania lub porównywania wydajności.

Ogólnie rzecz biorąc, funkcja CROSSJOIN jest przydatnym narzędziem w scenariuszach, w których trzeba połączyć dane z wielu tabel lub wygenerować listę wszystkich możliwych kombinacji.

Wszystkiego najlepszego,

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.