Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
Î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.
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.
Î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.
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.
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 .
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 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.
Prin urmare, trebuie să plasați funcția FILTER în argumentul CROSSJOIN pentru ca filtrul să funcționeze.
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.
În Planul de interogare logic, puteți vedea că în loc de Operatorul de filtrare este folosit Filtrul VertiPaq .
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.
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.
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.
În fila Server Timings, codul selectează mai întâi marca și culoarea. Apoi însumează produsul dintre cantitate și preț net de vânzare.
Î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.
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.
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,
Ce este Sinele în Python: Exemple din lumea reală
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.
Î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.
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.
Î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.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
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.
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.
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