Funzioni di aggregazione
La serie di funzioni conosciute come funzioni di aggregazione è costituita da funzioni che prendono più valori di campo come input e restituiscono un singolo risultato per gruppo, dove l’aggregazione viene definita con una dimensione del grafico o una clausola group by nell'istruzione dello script.
Le funzioni di aggregazione comprendono Sum(), Count(), Min(), Max() e molte altre ancora.
La maggior parte delle funzioni di aggregazione può essere utilizzata sia nello script di caricamento dei dati che nelle espressioni del grafico, anche se la sintassi sarà diversa.
Limiti:
Il parametro della funzione di aggregazione non deve contenere altre funzioni di aggregazione, a meno che tali aggregazioni interne non contengano il qualificatore TOTAL. Nel caso di aggregazioni nidificate più complesse, utilizzare la funzione avanzata Aggr in combinazione con una dimensione specificata.
Quando si denomina un'entità, evitare di assegnare lo stesso nome a più campi, variabili o misure. Esiste un rigoroso ordine di precedenza per risolvere i conflitti tra entità con nomi identici. Questo ordine si riflette in qualsiasi oggetto o contesto in cui queste entità vengono utilizzate. L'ordine di precedenza è il seguente:
-
All'interno di un'aggregazione, un campo ha la precedenza su una variabile. Le etichette delle misure non sono rilevanti nelle aggregazioni e non hanno priorità.
-
Al di fuori di un'aggregazione, un'etichetta di misura ha la precedenza su una variabile, che a sua volta ha la precedenza su un nome di campo.
-
Inoltre, al di fuori di un'aggregazione, una misura può essere riutilizzata facendo riferimento alla sua etichetta, a meno che non si tratti di un'etichetta calcolata. In tale situazione, la misura diminuisce di significato per ridurre il rischio di autoreferenzialità e in questo caso il nome sarà sempre interpretato prima come etichetta di misura, poi come nome di campo e infine come nome di variabile.
Utilizzo delle funzioni di aggregazione in uno script di caricamento dei dati
Le funzioni di aggregazione possono essere utilizzate soltanto all’interno di istruzioni LOAD e SELECT .
Utilizzo delle funzioni di aggregazione nelle espressioni grafiche
Il parametro della funzione di aggregazione non deve contenere altre funzioni di aggregazione, a meno che tali aggregazioni interne non contengano il qualificatore TOTAL. Nel caso di aggregazioni nidificate più complesse, utilizzare la funzione avanzata Aggr in combinazione con una dimensione specificata.
La funzione di aggregazione aggrega il set di possibili record definiti dalla selezione. Tuttavia, è possibile definire un set alternativo di record mediante un'espressione set nell'analisi di gruppo.
Vedere: Analisi di gruppo
Come vengono calcolate le aggregazioni
Un'aggregazione si chiude intorno ai record di una tabella specifica, aggregando i record al suo interno. Ad esempio, Count(<Field>) conteggerà il numero di record nella tabella in cui risiede <Field>. Se si desidera aggregare solo i valori di campo distinti, utilizzare la clausola distinct, come Count(distinct <Field>).
Se la funzione di aggregazione contiene campi da tabelle diverse, la funzione di aggregazione si chiude sui record del prodotto incrociato delle tabelle dei campi costituenti. Ciò penalizza le prestazioni e per questo motivo tali aggregazioni devono essere evitate, specialmente in presenza di grandi quantità di dati.
Aggregazione dei campi chiave
Il modo in cui vengono calcolate le aggregazioni fa sì che non sia possibile aggregare campi chiave, perché non è chiaro quale tabella debba essere utilizzata per l'aggregazione. Ad esempio, se il campo <Key> collega due tabelle, non è chiaro se Count(<Key>) debba restituire il numero di record dalla prima o dalla seconda tabella.
Tuttavia, se si utilizza la clausola distinct, l'aggregazione viene definita adeguatamente e può essere calcolata.
Pertanto, se si utilizza un campo chiave all'interno di una funzione di aggregazione senza la clausola distinct, Qlik Sense restituirà un numero che può essere privo di significato. La soluzione consiste nell'utilizzare la clausola distinct o una copia della chiave – una copia che risiede in una sola tabella.
Ad esempio, nelle tabelle seguenti, ProductID rappresenta la chiave tra le tabelle.
Count(ProductID) può essere conteggiato nella tabella Products (che presenta un solo record per prodotto – ProductID è la chiave primaria) oppure può essere conteggiato nella tabella Details (che disporrà molto probabilmente di svariati record per prodotto). Se si desidera conteggiare il numero di prodotti distinti, utilizzare Count(distinct ProductID). Se si desidera conteggiare il numero di righe in una tabella specifica, non utilizzare la chiave.