Analisi di gruppo
Quando si effettua una selezione in un'app, si definisce un sottogruppo di record nei dati. Le funzioni di aggregazione, come Sum(), Max(), Min(), Avg() e Count(), vengono calcolate in base a questo sottogruppo.
In altre parole, la selezione dell'utente definisce l'ambito dell'aggregazione; definisce il set di record su cui vengono effettuati i calcoli.
L'analisi di gruppo offre un modo per definire un ambito diverso dal set di record definito dalla selezione corrente. Tale nuovo ambito può anche essere considerato come una selezione alternativa.
Ciò può essere utile se si desidera confrontare la selezione corrente con un particolare valore, ad esempio il valore per lo scorso anno o la quota di mercato globale.
Espressioni set
Le espressioni set possono essere utilizzate all'interno e all'esterno delle funzioni di aggregazione, racchiudendole tra parentesi graffe.
Esempio: Espressione set interna
Sum( {$<Year={2021}>} Sales )
Esempio: Espressione set esterna
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Per ulteriori informazioni sulle espressioni set interne ed esterne, vedere Espressioni set interne ed esterne.
Un'espressione set è composta da una combinazione dei seguenti elementi:
-
Identificatori. Un identificatore set rappresenta una selezione, definita altrove. Rappresenta anche un set specifico di record nei dati. Può trattarsi della selezione corrente, di una selezione da un segnalibro o di una selezione da uno stato alternato. Un'espressione set semplice è composta da un unico identificatore, come ad esempio il simbolo del dollaro, {$},che rappresenta tutti i record della selezione attuale.
Esempi: $, 1, BookMark1, State2
Vedere: Identificatori set
-
Operatori. Un operatore set può essere utilizzato per creare unioni, differenze o intersezioni tra diversi identificatori set. In questo modo, è possibile creare un sottogruppo o un sovragruppo delle selezioni definite dagli identificatori set.
Esempi: +, -, *, /
Vedere: Operatori set
-
Modificatori. Un modificatore set può essere aggiunto all'identificatore set per modificarne la selezione. Un modificatore può anche essere utilizzato autonomamente, in modo che modifichi successivamente l'identificatore predefinito. Un modificatore deve essere racchiuso tra parentesi angolari <…>.
Esempi: <Year={2020}><Supplier={ACME}>
Vedere: Modificatori set
Gli elementi sono combinati in modo da formare espressioni set.
L'espressione set di cui sopra, ad esempio, viene costruita dall'aggregazione Sum(Sales).
Il primo operando restituisce le vendite per l'anno 2021 per la selezione corrente, indicato dall'identificatore set $ e dal modificatore contenente la selezione dell'anno 2021. Il secondo operando restituisce Sales per Sweden, e ignora la selezione corrente, indicata dall'identificatore set 1.
Infine, l'espressione restituisce un set composto dai record appartenenti a uno qualsiasi dei due operandi set, come indicato dall'operatore set +.
Per una descrizione completa della sintassi, vedere Sintassi per le espressioni set.
Esempi
Esempi che combinano gli elementi espressione set sopra disponibili nei seguenti argomenti:
Per provare alcune altre espressioni, vedere Tutorial - Creazione di un'espressione set.
Set naturali
In genere, un'espressione set rappresenta sia un set di record nel modello dati, sia una selezione che definisce tale sottogruppo di dati. In questo caso, il set viene definito set naturale.
Gli identificatori set, con o senza modificatori set, rappresentano sempre set naturali.
Tuttavia, un'espressione set che utilizza operatori di gruppo rappresenta anche un sottogruppo dei record, ma in genere non può comunque essere descritta usando una selezione di valori di campo. Tale espressione rappresenta un set non naturale.
Ad esempio, il set fornito da {1-$} non può essere sempre definito da una selezione. Non rappresenta dunque un set naturale. Ciò può essere mostrato caricando i seguenti dati, aggiungendoli a una tabella ed effettuando quindi selezioni usando le caselle di filtro.
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Effettuando selezioni per Dim1 e Dim2, si ottiene la visualizzazione mostrata nella tabella seguente.
L'espressione set nella prima misura utilizza un set naturale; corrisponde alla selezione effettuata {$}.
La seconda misura è diversa. Utilizza {1-$}. Non è possibile effettuare una selezione corrispondente a questo set, pertanto rappresenta un set non naturale.
Tale distinzione ha una serie di conseguenze:
-
I modificatori set possono essere applicati solo agli identificatori set. Non possono essere applicati a un'espressione set arbitraria. Ad esempio, non è possibile utilizzare un'espressione set come:
{ (BM01 * BM02) <Field={x,y}> }
Qui, le normali parentesi (tonde) implicano che l'intersezione tra BM01 e BM02 debba essere valutata prima che sia possibile applicare il modificatore set. Il motivo è l'assenza di un set di elementi modificabili.
-
Non è possibile utilizzare set non naturali all'interno delle funzioni di elementi P() e E(). Tali funzioni restituiscono un set di elementi, ma non è possibile dedurre il set di elementi da un set non naturali.
-
Una misura che utilizza un set non naturale non sempre può essere attribuita al giusto valore dimensionale se il modello dati presenta molte tabelle. Ad esempio, nel grafico seguente, alcuni numeri esclusi sulle vendite sono attribuiti al valore Country corretto, mentre altri hanno NULL come Country.
Il fatto che l'assegnazione venga effettuata correttamente o meno dipende dal modello dati. In questo caso, il numero non può essere assegnato se appartiene a un paese escluso dalla selezione.
Identificatore | Descrizione |
---|---|
1 | Rappresenta la serie completa di tutti i record nell'applicazione, indipendentemente dalle selezioni eseguite. |
$ | Rappresenta i record della selezione attuale. L'espressione set {$} equivale pertanto alla non dichiarazione di un'espressione set. |
$1 | Rappresenta la selezione precedente. $2 rappresenta la selezione precedente, con uno scarto di uno, e così via. |
$_1 | Rappresenta la selezione successiva (in avanti). $_2 rappresenta la selezione successiva, con uno scarto di uno, e così via. |
BM01 | È possibile utilizzare qualsiasi ID o nome del segnalibro. |
MyAltState | È possibile fare riferimento alle selezioni effettuate in uno stato alternativo utilizzando il nome del relativo stato. |
Esempio | Risultato |
---|---|
sum ({1} Sales) | Restituisce le vendite totali per l'app, ignorando le selezioni, ma non la dimensione. |
sum ({$} Sales) |
Restituisce le vendite per la selezione attuale, vale a dire lo stesso di sum(Sales). |
sum ({$1} Sales) |
Restituisce le vendite per la selezione precedente. |
sum ({BM01} Sales) |
Restituisce le vendite per il segnalibro denominato BM01. |
Esempio | Risultato |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | Restituisce le vendite per la selezione attuale in cui OrderDate = DeliveryDate. |
sum({1<Region = {US}>} Sales) |
Restituisce le vendite per la regione US ignorando la selezione attuale. |
sum({$<Region = >} Sales) |
Restituisce le vendite per la selezione, da cui è stata però rimossa la selezione in 'Region'. |
sum({<Region = >} Sales) |
Restituisce lo stesso risultato dell'esempio precedente. Quando il gruppo da modificare viene omesso, viene utilizzato $. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Restituisce le vendite per la selezione corrente, ma con nuove selezioni sia in Year che in Region. |