Vai al contenuto
Home » DAX: differenza tra SUM e SUMX

DAX: differenza tra SUM e SUMX

Nel linguaggio DAX esistono due funzioni diverse: SUM e SUMX. Ma quali sono le diferenze tra le due e quando usare l’una piuttosto che l’altra? Cerchiamo di capire che cosa fanno le due funzioni.
(Vi anticipo, esisono anche AVERAGE e AVERAGEX, MIN e MINX, MAX e MAXX che ragioneranno secondo la stessa logica che vedremo in questo atrticolo).


Funzione SUM

Innanzitutto, la funzione SUM può essere usata per creare Misure che facciano la semplice sommatoria di una specifica colonna. In parole povere, la funzione SUM è una funzione di riepilogo, o di aggregazione (in inglese vengono chiamate “aggregate function“).


Ad esempio, se scrivessi una misura come questa:

Totale Quantità = SUM(Ordini[Quantità])

Significa che intendo fare la somma della colonna Ordini[Quantità], la quale verrebbe effettuata prendendo come input TUTTE le righe della tabella Ordini e sommando TUTTI i valori in essa contenuti.
Ovvero, la funzione SUM andrebbe a fare una scansione di tutte le righe, per poi ritornare un solo valore aggregato, o appunto, di riepilogo.
Come tutte le misure poi, verrebbe ricalcolata in base al contesto, o al filtro che eventualmente applicheremo alla pagina o al report.

Funzione SUMX

La funzione SUMX invece calcola la somma di una espressione calcolata RIGA per RIGA. Ovvero, la funzione SUMX introduce in concetto di ITERAZIONE e va a calcolare una espressione facendo lo scan della tabella RIGA per RIGA, per poi calcolarne la somma.
Consideriamo un esempio in cui, su ogni riga, abbiamo la Quantità ordinata e il Prezzo Unitario. Vogliamo calcolare (riga per riga) il totale della riga (moltiplicando tra loro Quantità e Prezzo Unitario) per poi “alla fine“, farne la somma.

Potremmo calcolare questo totale con una misura come segue:

Totale Venduto = SUMX(Ordini, Ordini[Quantità]* Ordini[Prezzo Unitario])

La funzione SUMX andrebbe quindi ad ITERARE (riga per riga) lo stesso calcolo (Ordini[Quantità]* Ordini[Prezzo Unitario]) per poi sommare tutti i risultati ottenuti, calcolati riga per riga.

2 commenti su “DAX: differenza tra SUM e SUMX”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *