Funzione DAX COLUMNSTATISTICS In LuckyTemplates

Funzione DAX COLUMNSTATISTICS In LuckyTemplates

Mi piacerebbe continuare a esplorare gli usi dinamici della funzione DAX COLUMNSTATISTICS(), una nuova funzione DAX quasi interamente non documentata aggiunta a LuckyTemplates nell'agosto 2021 che presenta alcuni aspetti davvero unici che penso sarà molto interessante conoscere . Puoi guardare il video completo di questo tutorial in fondo a questo blog.

Ho fatto molte sperimentazioni e ho imparato alcune cose nuove davvero interessanti su come funziona questa funzione e cosa puoi fare con essa. Nel mio primo blog su questa funzione, ho parlato di alcuni usi statici. Oggi parlerò di alcuni usi dinamici davvero sorprendenti della funzione in modi che nemmeno IntelliSense è ancora aggiornato.

Sommario

Come funziona la funzione DAX COLUMNSTATISTICS

Per ogni tabella e campo nel modello dati, COLUMNSTATISTICS produce una tabella di sei campi aggiuntivi con un nome tabella, un nome colonna, valori minimo e massimo per la colonna, cardinalità e una lunghezza massima. Non sembrano molti dati, ma c'è molto che puoi fare con quello.

Funzione DAX COLUMNSTATISTICS In LuckyTemplates

I dati che sto attualmente utilizzando sono solo il set di dati di pratica per gli strumenti esterni di LuckyTemplates. È un modello di dati relativamente semplice con cinque tabelle delle dimensioni, una tabella dei fatti e una tabella delle misure . Un modello come questo non è così difficile da tenere traccia, ma un modello complesso richiede un monitoraggio del set di dati molto più complesso.

I metadati per un set di dati complesso diventano molto più importanti in termini di osservazione della cardinalità, che è il numero di valori univoci all'interno di un campo. Ha una grande influenza sulla dimensione del tuo modello e potenzialmente sulla velocità di elaborazione.

Inoltre, durante la creazione di un modello, è utile conoscere non solo il numero di tabelle, ma anche l'intervallo di date di tali tabelle. Mentre costruisci la tua tabella delle date, ti assicuri di coprire l'intera gamma di dati nella tua tabella dei fatti.

Quindi, per questo esempio, proviamo ad aggiungere una tabella a questo modello di dati su cui sto lavorando. In Power Query, andremo a New Source , quindi a Blank Query . E poi, andremo nell'editor avanzato e incollerò una funzione chiamata List.Dates . Lo useremo per creare una tabella della cardinalità di 10.000, quindi sono 10.000 date univoche.

Restituirà un elenco di 10.000 elementi e possiamo semplicemente convertirlo in una tabella e quindi rinominare quella tabella.

Possiamo cambiare il campo fino ad oggi. E se facciamo clic su Chiudi e applica, vedremo che la nostra narrativa intelligente si aggiornerà dinamicamente, senza dover aggiornare l'intero modello (come abbiamo fatto in passato).

Il motivo per cui questo è completamente dinamico è che stiamo facendo tutto con misure. La cosa interessante è che mostra molti errori e la funzione è così nuova che IntelliSense non la rileva correttamente, ma in realtà funziona.

Andiamo in Tabular Editor 3, che penso sia il modo migliore per capire cosa stanno effettivamente facendo le complesse misure DAX.

Tenere presente che la query DAX restituisce tabelle anziché scaler. Quindi, se prendiamo questa misura e la copiamo in una query DAX , viene visualizzato un errore perché Result qui è ancora uno scaler. Possiamo utilizzare l'approccio di debug sostituendo quel risultato RETURN con i singoli componenti della misura.

In questo caso, lo sostituiremo con ColStats , che ciò che abbiamo fatto all'inizio è semplicemente inserire la funzione DAX COLUMNSTATISTICS in una variabile. Con ciò, otteniamo esattamente ciò che ci aspettiamo, ovvero la tabella delle statistiche delle colonne standard.

E ora, vogliamo solo guardare la colonna Nome tabella, e vogliamo prendere i valori distinti da questo e contarli. Questo sarà il numero di tabelle nel nostro modello di dati.

Innanzitutto, selezioneremo le colonne nella nostra tabella ColStats e restituiremo solo il campo del nome della tabella. In genere, in una misura DAX o in una query DAX si desidera restituire un nome di campo preceduto dal nome della tabella. Ma in questo caso, non sappiamo a cosa fa riferimento il nome della tabella appropriato perché esiste solo virtualmente. Non sembra accettare il nome della variabile come nome della tabella.

Quindi, in questo caso, dobbiamo rimanere con ciò che sembra una misura, ma in realtà è un riferimento di colonna senza il riferimento di tabella davanti. E funziona ancora anche se crea confusione nella nomenclatura. Ora, se sostituiamo questa istruzione RETURN con la nostra TabCol , otteniamo esattamente ciò che ci aspettiamo, ovvero quel campo delle tabelle modello.

E poi per il Risultato, stiamo solo facendo un conteggio delle distinte colonne della tabella. Quindi, se lo sostituiamo con DISTINCT(TabsCol) , otteniamo le nostre sette tabelle.

Ora diamo un'occhiata alla cardinalità più alta nella tabella delle cardinalità più alte e vediamo come le abbiamo ottenute. Questo è in realtà uno schema importante che puoi usare per molte cose diverse in cui stai cercando, non solo il numero massimo, ma l'attributo massimo associato a quel numero.

Quindi diamo un'occhiata a MaxCardinality . Anche se si tratta di uno scaler, possiamo trasformarlo in una tabella a una cella semplicemente inserendovi delle parentesi. E se raggiungiamo cinque, vedremo che è il valore di cardinalità di 10.000.

Quindi ora la domanda è, come prendiamo questo e restituiamo la tabella associata a quella cardinalità.

Per fare ciò, usiamo questo modello molto comune usando . Quindi lo copiamo nella nostra dichiarazione RETURN e ci darà la riga che ci aspettavamo di ottenere, che è la colonna 10.000 date. Invece di ottenere una riga (perché è TOPN), ne otteniamo due perché c'è un pareggio.

Quello che fa anche ColStats è creare, per ogni tabella, un indice in una riga di indice nascosta chiamata RowNumber con quello che è un identificatore univoco per ogni riga della tabella. In modo che MaxCardinality sarà sempre rispecchiato dal RowNumber se questo è un identificatore univoco.

E quindi, non importa davvero che abbiamo due righe perché quello che stiamo guardando è il Max di Table Name. E quel massimo è lì solo per restituire un valore che altrimenti sarebbe solo una colonna nuda. Ma dobbiamo mettere un po' di aggregazione intorno a questo, e in questo caso usiamo .

Quindi, se inseriamo MaxCardinality nella nostra istruzione RETURN e la mettiamo tra parentesi per restituire una tabella anziché uno scaler, restituisce il valore di Test.

Questo modello TOPN DAX è davvero un buon modello da ricordare quando si desidera sostanzialmente calcolare un valore massimo o minimo e quindi restituire un attributo associato a quel minimo o massimo.


Ottimizza le formule di LuckyTemplates utilizzando DAX avanzato
Analisi delle misure DAX: suddivisione delle misure DAX lunghe
Misure DAX in LuckyTemplates utilizzando la diramazione delle misure

Conclusione

Ti ho fornito l'approccio generale e il contesto che possiamo utilizzare in termini di utilizzo ottimale della funzione DAX COLUMNSTATISTICS in modo dinamico. Essere in grado di tracciarlo dinamicamente in termini di un modello complesso, penso che questa funzione abbia un enorme valore.

Più sperimentiamo con la funzione COLUMNSTATISTICS e con la sua capacità di gestire dinamicamente i metadati all'interno di DAX, penso che gli usi più interessanti che troveremo. Quindi, se hai già trovato alcuni usi interessanti per questa funzione DAX, fammelo sapere nei commenti qui sotto.

Ti auguro il meglio!


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere