Uso dell'istruzione OVER per fare riferimenti alle parti di dati

Le espressioni personalizzate vengono valutate sulle parti dei dati, rappresentati dai marcatori nella visualizzazione. Nelle espressioni personalizzate è possibile utilizzare le istruzioni OVER quando si desidera includere nella valutazione di un'espressione anche dati provenienti dall'esterno della parte corrente.

Per spiegare cosa significa includere dati dall'esterno della parte corrente, fare riferimento all'immagine seguente. Un'immagine simile è utilizzata per illustrare le nozioni concettuali su suddivisioni e marcatori, che sono essenziali per comprendere quando lavorare con le espressioni personalizzate, in particolare con quelle che contengono un'istruzione OVER.

La grande scatola simboleggia tutte le righe di una tabella dati contenente le vendite annuali in diverse regioni per alcuni tipi di frutta, mentre i cubi simboleggiano le diverse parti in cui sono suddivisi i dati.



Si assuma di voler confrontare Sales of Oranges, North, 2018 con Sales of Lemons, West, 2018, oppure con Sales of Oranges, West, 2015-2017. In una tale espressione, pertanto, è necessario fare riferimento a parti di dati esterni a Sales of Oranges, North, 2018, operazione che viene eseguita utilizzando l'istruzione OVER. L'istruzione OVER consente di ottenere nuovi modi per raggruppare i dati a cui fare riferimento nelle espressioni.

Il modo più semplice per spiegare come scrivere istruzioni OVER nelle espressioni e come queste istruzioni lavorano, è attraverso degli esempi.

Esempi di espressioni OVER

Nota: Prima di tutto, quando si utilizza l'istruzione OVER in un'espressione per fare riferimento ad altre parti, non si fa riferimento alla colonna effettiva utilizzata per suddividere i dati su un asse. Si fa invece riferimento all'asse stesso, come [Axis.X] o[Axis.Color].

Il grafico a dispersione mostra la somma di Sales per ogni Fruit; Apples, Oranges e Pears. Il totale di Sales ammonta a 300.



Quando è specificata l'espressione

Sum([Sales]) OVER (All([Axis.X]))

sull'asse Y, ciascun marcatore viene nuovamente valutato e il grafico a dispersione cambia in:



Per comprendere il risultato, prendiamo ad esempio in esame il marcatore che presenta Sum of Sales, Apples. L'espressione personalizzata implica la rivalutazione del marcatore per mostrare la somma delle vendite per tutte le parti dell'asse X, ossia la somma delle vendite di Apples, Oranges e Pears (150+80+70). Lo stesso accade per gli altri marcatori, in modo che tutti comportino identici risultati finali. Infatti, la sezione OVER (All([Axis.X])) dell'espressione implica che la suddivisione sull'asse X venga ignorata.

Nel prossimo esempio viene effettuata una ulteriore suddivisione dei dati, dato che viene specificato l'anno sull'asse dei colori.



Cambiare l'asse Y nella seguente espressione:

Sum([Sales]) OVER (All([Axis.Color]))



Questa espressione personalizzata implica la rivalutazione di ciascun marcatore per mostrare la somma di tutte le parti a colori, di fatto ignorando la suddivisione effettuata dal colore.

Nota: Le espressioni utilizzate negli esempi precedenti funzionano solo quando si utilizzano dati interni alla memoria. Se vengono utilizzati dati interni al database, è necessaria un'espressione THEN.

Si prendano ad esempio Pears, 2015 (la stessa blu denominata Pears). Il nuovo valore del marcatore mostra la somma delle vendite di pere per tutti e tre gli anni (40+20+10). Tutti i marcatori appartenenti a un tipo di frutta ottengono lo stesso valore dell'asse Y, indipendentemente dal colore (Year).

Non esistono usi pratici degli esempi precedenti, tuttavia tramite essi è possibile comprendere come lavora l'istruzione OVER in combinazione con i cosiddetti metodi di navigazione dei nodi.

Uso delle istruzioni OVER nelle colonne calcolate

L'uso dell'istruzione OVER nelle colonne calcolate funziona in maniera diversa rispetto all'uso dell'istruzione nelle espressioni personalizzate. Nelle colonne calcolate potrebbe portare a un numero minore di record.