Aggr - funzione per grafici

Aggr() restituisce una matrice di valori per l'espressione calcolata in base alle dimensioni dichiarate o alle dimensioni. Ad esempio, il valore massimo delle vendite, per cliente, per regione. La funzione Aggr viene utilizzata per aggregazioni avanzate in cui la funzione Aggr è racchiusa in un'altra funzione di aggregazione, tramite la matrice di risultati dalla funzione Aggr come input all'aggregazione in cui è nidificata.

Sintassi:  

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

Restituisce il tipo di dati: duale

Argomenti:  

Argomento Descrizione
expr

Un’espressione costituita da una funzione di aggregazione. Per impostazione predefinita, la funzione di aggregazione aggrega il set di possibili record definiti dalla selezione.

StructuredParameter

StructuredParameter è composto da una dimensione e, opzionalmente, da criteri di ordinamento nel formato: (Dimension(Sort-type, Ordering))

La dimensione è un campo singolo e non può essere un'espressione. Viene utilizzata per determinare la matrice di valori per cui viene calcolata l'espressione Aggr.

Se sono specificati criteri di ordinamento, viene ordinata la matrice di valori creata dalla funzione Aggr, calcolata per la dimensione. Questo è importante quando il criterio di ordinamento influisce sul risultato dell'espressione in cui è racchiusa la funzione Aggr.

Per dettagli sull'utilizzo dei criteri di ordinamento, vedere Aggiunta di criteri di ordinamento alla dimensione nel parametro strutturato.

SetExpression Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis.
DISTINCT Se l'argomento dell'espressione è preceduto dal qualificatore distinct o se non viene utilizzato alcun qualificatore, ogni combinazione distinta di valori di dimensione restituirà un solo valore. Questa è la modalità normale in cui vengono create le aggregazioni; ciascuna combinazione distinta di valori di dimensione restituisce una linea nel grafico.
NODISTINCT

Se l'argomento dell'espressione è preceduto dal qualificatore nodistinct, ogni combinazione di valori di dimensione può restituire più valori, a seconda della struttura dei dati sottostante. Se esiste solo una dimensione, la funzione aggr restituirà una matrice con lo stesso numero di elementi per il numero di righe presenti nei dati sorgente.

Le funzioni di aggregazione di base, quali Sum, Min e Avg, restituiscono un singolo valore numerico, mentre la funzione Aggr() può essere paragonata alla creazione di una serie di risultati temporanei (una tabella virtuale) su cui è possibile effettuare un’altra aggregazione. Ad esempio, calcolando un valore delle vendite medio mediante la somma delle vendite per cliente in un'istruzione Aggr(), quindi calcolando la media dei risultati sommati: Avg(TOTAL Aggr(Sum(Sales), Customer)).

Suggerimento: Utilizzare la funzione Aggr() nelle dimensioni calcolate se si desidera creare un'aggregazione di grafici nidificata con più livelli.

Limiti:  

Ogni dimensione presente in una funzione Aggr() deve corrispondere a un campo singolo e non può essere un'espressione (dimensione calcolata).

Aggiunta di criteri di ordinamento alla dimensione nel parametro strutturato

Nella sua forma di base, l'argomento StructuredParameter nella sintassi della funzione Aggr è una dimensione singola. L'espressione Aggr(Sum(Sales, Month)) consente di trovare il valore totale delle vendite per ciascun mese. Tuttavia, se viene inclusa in un'altra funzione di aggregazione, potrebbero venire restituiti risultati imprevisti, a meno che non vengano utilizzati criteri di ordinamento. Ciò è dovuto al fatto che alcune dimensioni possono essere ordinate, ad esempio, con criterio numerico o alfabetico.

Nell'argomento StructuredParameter della funzione Aggr è possibile specificare il criterio di ordinamento per la dimensione nell'espressione. In questo modo si impone un criterio di ordinamento sulla tabella virtuale creata dalla funzione Aggr.

L'argomento StructuredParameter ha la sintassi seguente:

(FieldName, (Sort-type, Ordering))

I parametri strutturati possono essere nidificati:

(FieldName, (FieldName2, (Sort-type, Ordering)))

Sort-type può essere: NUMERIC, TEXT, FREQUENCY o LOAD_ORDER.

I tipi di Ordering associati a ciascun Sort-type sono i seguenti:

Sort-type Tipi di Ordering consentiti
NUMERIC ASCENDING, DESCENDING o REVERSE
TEXT ASCENDING, A2Z, DESCENDING, REVERSE o Z2A
FREQUENCY DESCENDING, REVERSE o ASCENDING
LOAD_ORDER ASCENDING, ORIGINAL, DESCENDING o REVERSE

I tipi di ordinamento REVERSE e DESCENDING sono equivalenti.

Per il Sort-type TEXT, i tipi di ordinamento ASCENDINGe A2Z sono equivalenti, e DESCENDING, REVERSE e Z2A sono equivalenti.

Per il Sort-type LOAD_ORDER, i tipi di ordinamento ASCENDING e ORIGINAL sono equivalenti.

Esempi e risultati:  

Esempio Risultato
Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

L'espressione Aggr(Sum(UnitSales*UnitPrice), Customer) consente di calcolare il valore totale delle vendite in base a Customer e restituisce una matrice di valori: 295, 715 e 120 per i tre valori Customer.

Di fatto, è stato creato un elenco temporaneo di valori, senza necessità di creare una tabella esplicita o una colonna contenente tali valori.

Questi valori vengono utilizzati come input per la funzione Avg() per calcolare il valore di vendita medio, 376,6667. È necessario avere selezionato Totali alla voce Presentation nel pannello delle proprietà.

Aggr(NODISTINCT Max(UnitPrice), Customer)

Una matrice di valori: 16, 16, 16, 25, 25, 25, 19 e 19. Il qualificatore nodistinct indica che la matrice contiene un elemento per ciascuna riga dei dati sorgente: ognuno è il valore UnitPrice massimo per ciascun valore Customer e Product.

max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Utilizzo di criteri di ordinamento nell'argomento StructuredParameter nell'espressione:max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

Senza i criteri di ordinamento il risultato dell'espressione max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear))) dipende dal modo in cui viene ordinata la dimensione MonthYear. Il risultato ottenuto potrebbe non essere quello desiderato.

Aggiungendo valori per Sort-type e Ordering alla dimensione, si assegnano criteri di ordinamento al parametro strutturato: (MonthYear, (NUMERIC, ASCENDING)), dove il tipo di ordinamento NUMERIC e l'ordinamento ASCENDING determinano l'ordinamento con criterio numerico crescente per MonthYear.

In questo caso si sta tentando di individuare il maggior aumento dei clienti, mese dopo mese. Il risultato può essere utilizzato, ad esempio, in una visualizzazione KPI.

La parte Aggr dell'espressione confronta il numero totale di clienti in un mese (dato da MonthYear) con il numero totale del mese precedente.

Poiché si sta utilizzando il criterio di ordinamento con la dimensione: (MonthYear,(NUMERIC, ASCENDING)), si ha la certezza che Aggr confronta i numeri di clienti in mesi consecutivi nella tabella virtuale ordinando i mesi con criterio numerico crescente e non alfabetico crescente.

Dati utilizzati negli esempi:

Creare una tabella con Customer, Product, UnitPrice e UnitSales come dimensioni. Aggiungere l’espressione alla tabella come misura.

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|25|25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');