Funcția DAX COLUMNSTATISTICS În LuckyTemplates

Funcția DAX COLUMNSTATISTICS În LuckyTemplates

Aș dori să continui să explorez utilizările dinamice ale funcției DAX COLUMNSTATISTICS() – o funcție DAX nouă, aproape în întregime nedocumentată, adăugată la LuckyTemplates în august 2021, care are câteva aspecte foarte unice cu care cred că va fi foarte interesant de familiarizat. . Puteți viziona videoclipul complet al acestui tutorial în partea de jos a acestui blog.

Am făcut multe experimente și am învățat câteva lucruri noi cu adevărat interesante despre cum funcționează această funcție și ce poți face cu ea. În primul meu blog despre această funcție, am vorbit despre câteva utilizări statice. Astăzi, voi vorbi despre câteva utilizări dinamice cu adevărat uimitoare ale funcției în moduri în care nici măcar IntelliSense nu este încă actualizat.

Cuprins

Cum funcționează funcția DAX COLUMNSTATISTICS

Pentru fiecare tabel și câmp din modelul dvs. de date, COLUMNSTATISTICS produce un tabel cu șase câmpuri suplimentare care are un nume de tabel, un nume de coloană, valori minime și maxime pentru coloană, cardinalitate și o lungime maximă. Nu pare o mulțime de date, dar puteți face multe cu acestea.

Funcția DAX COLUMNSTATISTICS În LuckyTemplates

Datele pe care le folosesc în prezent sunt doar setul de date practice pentru instrumentele externe LuckyTemplates. Este un model de date relativ simplu, cu tabele cu cinci dimensiuni, un tabel cu fapte și un tabel cu măsurători . Un model ca acesta nu este atât de greu de urmărit, dar un model complex are nevoie de o monitorizare mult mai complexă a setului de date.

Metadatele pentru un set de date complex devin mult mai importante în ceea ce privește cardinalitatea, care este numărul de valori unice dintr-un câmp. Are o influență mare asupra dimensiunii modelului dvs., precum și asupra vitezei de procesare.

În plus, pe măsură ce construiți un model, vă ajută să cunoașteți nu doar numărul de tabele, ci și intervalul de date al acestor tabele. Pe măsură ce construiți tabelul Date, vă asigurați că acoperiți întreaga gamă de date din tabelul de date.

Și așa, pentru acest exemplu, să încercăm să adăugăm un tabel la acest model de date la care lucrez. În Power Query, vom merge New Source , apoi Blank Query . Și apoi, vom intra în Editorul avansat și voi doar să lipesc o funcție care se numește List.Dates . Vom folosi asta pentru a crea un tabel cu cardinalitatea de 10.000, deci 10.000 de date unice.

Va returna o listă de 10.000 de articole și o putem converti într-un tabel și apoi redenumim acel tabel.

Putem schimba câmpul până în prezent. Și dacă facem clic pe Închidere și Aplicare, vom vedea că narațiunea noastră inteligentă se va actualiza dinamic, fără a fi nevoie să reîmprospătăm întregul model (cum facem în trecut).

Motivul pentru care acest lucru este complet dinamic este că facem totul cu măsuri. Lucrul interesant este că arată o mulțime de erori, iar funcția este atât de nouă încât IntelliSense nu o preia corect, dar chiar funcționează.

Să intrăm în Editorul tabelar 3, care cred că este cel mai bun mod de a ne da seama ce fac de fapt măsurile complexe DAX.

Amintiți-vă că interogarea DAX returnează mai degrabă tabele decât scalari. Deci, dacă luăm această măsură și o copiem într-o interogare DAX , arată o eroare, deoarece Rezultatul de aici este încă un scaler. Putem folosi abordarea de depanare de a înlocui acel rezultat RETURN cu componente individuale ale măsurii.

În acest caz, îl vom înlocui cu ColStats , ceea ce am făcut în partea de sus este doar să punem acea funcție COLUMNSTATISTICS DAX într-o variabilă. Cu asta, obținem exact ceea ce ne așteptăm, adică tabelul standard cu statistici pe coloană.

Și acum, vrem să ne uităm doar la coloana Nume tabel și vrem să luăm valorile distincte din aceasta și să le numărăm. Acesta va fi numărul de tabele din modelul nostru de date.

Mai întâi, vom selecta coloanele din tabelul nostru ColStats și vom returna câmpul cu numele tabelului. De obicei, într-o măsură DAX sau într-o interogare DAX, doriți să returnați un nume de câmp cu numele tabelului în fața acestuia. Dar în acest caz, nu știm la ce se referă numele tabelului corespunzător, deoarece există doar virtual. Nu pare să accepte numele variabilei ca nume de tabel.

Deci, în acest caz, trebuie să rămânem cu ceea ce pare o măsură, dar este de fapt o referință de coloană fără referința tabelului în fața ei. Și asta încă funcționează, deși este confuz în nomenclatură. Acum, dacă înlocuim această instrucțiune RETURN cu TabCol , obținem exact ceea ce ne așteptăm, adică câmpul de tabele model.

Și apoi pentru Rezultat, facem doar o numărare a coloanelor distincte din tabel. Deci, dacă înlocuim acest lucru cu DISTINCT(TabsCol) , obținem cele șapte tabele ale noastre.

Acum să aruncăm o privire la cardinalitatea cea mai mare din tabelul de cardinalitate cea mai înaltă și să vedem cum le-am obținut. Acesta este de fapt un model important pe care îl puteți folosi pentru o mulțime de lucruri diferite pe care le căutați, nu doar numărul maxim, ci și atributul maxim asociat cu acel număr.

Deci, să aruncăm o privire la MaxCardinality . Chiar dacă acesta este un scaler, îl putem transforma într-un tabel cu o singură celulă doar punând paranteze în jurul lui. Și dacă atingem cinci, vom vedea că aceasta este valoarea cardinalității de 10.000.

Deci acum întrebarea este, cum luăm asta și returnăm tabelul asociat cu cardinalitatea respectivă.

Pentru a face asta, folosim acest model foarte comun folosind . Apoi îl copiam în declarația noastră RETURN și ne va oferi rândul pe care ne așteptam să îl obținem, care este coloana 10.000 de date. În loc să obținem un rând (pentru că este TOPN), obținem două pentru că există o egalitate.

Ceea ce face și ColStats este că creează, pentru fiecare tabel, un index într-un rând de index ascuns numit RowNumber , acesta fiind un identificator unic pentru fiecare rând al tabelului. Astfel încât MaxCardinality va fi întotdeauna oglindit de RowNumber dacă acesta este un identificator unic.

Și, așadar, nu contează cu adevărat că avem două rânduri, deoarece ceea ce ne uităm este Maxul numelui tabelului. Și acel maxim este acolo doar pentru a returna o valoare care altfel ar fi doar o coloană goală. Dar trebuie să punem o agregare în jurul acestui lucru și, în acest caz, folosim .

Apoi, dacă plasăm MaxCardinality în instrucțiunea noastră RETURN și o punem între paranteze pentru a returna un tabel mai degrabă decât un scaler, returnează valoarea Test.

Acest model TOPN DAX este un model foarte bun de reținut atunci când doriți să aflați practic o valoare maximă sau minimă și apoi să returnați un atribut asociat cu acel minim sau maxim.


Optimizați formulele LuckyTemplates utilizând
analiza avansată a măsurătorilor DAX DAX: defalcarea măsurilor DAX lungi
Măsurile DAX în LuckyTemplates utilizând ramificarea măsurilor

Concluzie

V-am oferit abordarea generală și contextul pe care le putem folosi în ceea ce privește utilizarea optimă a funcției DAX COLUMNSTATISTICS într-un mod dinamic. Fiind capabil să urmăresc acest lucru dinamic în ceea ce privește un model complex, cred că această funcție are o valoare extraordinară.

Cu cât experimentăm mai mult cu funcția COLUMNSTATISTICS și cu capacitatea sa de a gestiona în mod dinamic metadatele în DAX, cred că cu atât vom găsi utilizări mai interesante. Deci, dacă ați găsit deja câteva utilizări interesante pentru această funcție DAX, vă rugăm să-mi spuneți în comentariile de mai jos.

Toate cele bune!


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