Funcția CROSSJOIN DAX: Timing server și plan de interogare

În acest tutorial, veți afla cum funcționează funcția în DAX utilizând panoul Server Timings și planul său de interogare.

Funcția CROSSJOIN poate fi folosită pentru a crea un produs cartezian din două tabele. Un produs cartezian este un set de toate combinațiile posibile de rânduri din două sau mai multe tabele.

Codul DAX de mai jos va fi folosit în acest tutorial.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Puteți vedea că funcția CROSSJOIN are ca rezultat o combinație a produsului Brand și Color chiar dacă unele dintre aceste combinații nu există în tabelul de fapte . Rezultă un tabel cu un total de 176 de rânduri.

În fila Orare server, prima interogare preia marca din tabelul Produse, în timp ce a doua interogare preia culoarea.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Funcția CROSSJOIN DAX: Timing server și plan de interogare

În Planul de interogare logic , prima linie returnează rezultatul sub forma unui tabel. Al doilea și al treilea rând din tabelul de produse scanează culoarea și, respectiv, marca.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Odată ce datele sunt primite, Formula Engine iterează peste tabel și produce o combinație a ambelor coloane. CrossApply din linia 2 corespunde funcției CROSSJOIN.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Cuprins

Filtrați rezultatele CROSSJOIN în DAX

Puteți utiliza funcția pentru a filtra rezultatele unui CROSSJOIN. De exemplu, îl puteți folosi pentru a afișa numai produsele care sunt roșii.

Totuși, rețineți că nu puteți plasa o funcție CROSSJOIN într-un argument FILTER .

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Acum, dacă rulați acest cod și verificați fila Server Timings, veți vedea că contextul de filtru nu apare ca o clauză WHERE în interogare.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Funcția CROSSJOIN poate fi rezolvată numai de Formula Engine . Codul nu funcționează, deoarece se află între FILTER și , care sunt funcții care pot fi rezolvate numai de către Motorul de stocare . Astfel, CROSSJOIN a cauzat întreruperea buclei dintre aceste două funcții.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Prin urmare, trebuie să plasați funcția FILTER în argumentul CROSSJOIN pentru ca filtrul să funcționeze.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Acum, dacă rulați acest cod și verificați fila Server Timings, veți vedea că funcția FILTER este acum reprezentată de clauza WHERE.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

În Planul de interogare logic, puteți vedea că în loc de Operatorul de filtrare este folosit Filtrul VertiPaq .

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Acest lucru se datorează faptului că noua condiție de filtru din cod poate fi împinsă în jos către Motorul de stocare. După ce rezultatul este returnat, argumentul CROSSJOIN este apoi executat în interiorul Formula Engine.

Operatorul IN

De asemenea, puteți utiliza operatorul în loc de semnul egal într-un argument FILTER.

Operatorul IN poate fi folosit în argumentul expresiei funcției FILTER pentru a filtra un tabel în funcție de faptul dacă o valoare este conținută într-o listă de valori sau într-un tabel.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Când utilizați combinația FILTER – IN , motorul DAX trebuie să efectueze un filtru IsEmpty care confirmă dacă culoarea produsului este roșu sau negru.

Adăugați coloana Vânzări totale în rezultatul CROSSJOIN DAX

Alte funcții pot fi, de asemenea, utilizate împreună cu CROSSJOIN.

Puteți folosi funcția pentru a adăuga o altă coloană în tabelul dvs. și apoi scrieți argumentul informațiilor pe care doriți să o afișați.

În acest exemplu, să adăugăm o coloană Vânzări totale.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Când rulați codul, rezultatele vor returna în continuare 176 de rânduri. Cu toate acestea, unele combinații vor avea valori necompletate în coloana Vânzări totale. Acest lucru se datorează faptului că aceste combinații nu au un rând corespunzător în tabelul Vânzări.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

În fila Server Timings, codul selectează mai întâi marca și culoarea. Apoi însumează produsul dintre cantitate și preț net de vânzare.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

În acest caz, motorul DAX preia mai întâi toate combinațiile de marcă și culoare care există în tabelul Produse, împreună cu cele cu un rând corespunzător în tabelul Vânzări. Apoi, preia separat coloanele de marcă și culoare.

În Planul de interogare fizică, puteți vedea două cache de date; unul pentru marcă și altul pentru culoare. Când înmulți înregistrările lor totale, obții 176 de rânduri.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Apoi, se efectuează o căutare pe acele 176 de rânduri pentru a vedea dacă au o valoare corespunzătoare în tabelul Vânzări. Puteți vedea că doar 111 rânduri au valori. Celelalte 65 de rânduri vor returna spații libere.

Mai mult, dacă adăugați mai multe coloane în argumentul CROSSJOIN, rezultatul va returna și mai multe rânduri.

Funcția CROSSJOIN DAX: Timing server și plan de interogare

Concluzie

Funcția DAX CROSSJOIN generează un nou tabel prin combinarea rândurilor dintr-un tabel cu rândurile din altul. Această funcție este similară cu clauza CROSS JOIN din SQL și poate fi utilizată pentru a crea interogări mai complexe în modelul dvs. de date.

Poate genera o listă cu toate combinațiile de valori posibile din două sau mai multe tabele. De asemenea, poate fi folosit pentru a crea rapid un tabel nou cu un număr mare de rânduri, care poate fi util pentru analiza datelor, testare sau compararea performanței.

În general, funcția CROSSJOIN este un instrument util în scenariile în care trebuie să combinați date din mai multe tabele sau să generați o listă cu toate combinațiile posibile.

Toate cele bune,

Leave a Comment

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Ce este Sinele în Python: Exemple din lumea reală

Cum să salvați și să încărcați un fișier RDS în R

Cum să salvați și să încărcați un fișier RDS în R

Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

Primele N zile lucrătoare revizuite – O soluție de limbaj de codare DAX

În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Prezentați perspective utilizând tehnica vizuală dinamică cu mai multe fire în LuckyTemplates

Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.

Introducere la filtrarea contextului în LuckyTemplates

Introducere la filtrarea contextului în LuckyTemplates

În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Cele mai bune sfaturi pentru utilizarea aplicațiilor din serviciul online LuckyTemplates

Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Analizați modificările marjei de profit ore suplimentare – Analytics cu LuckyTemplates și DAX

Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.

Idei de materializare pentru cache-urile de date în DAX Studio

Idei de materializare pentru cache-urile de date în DAX Studio

Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.

Raportare de afaceri folosind LuckyTemplates

Raportare de afaceri folosind LuckyTemplates

Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți

Ce este LuckyTemplates Gateway? Tot ce trebuie să știți