Riferimenti a campi, misure e variabili
Un'espressione può contenere riferimenti a campi, variabili e misure.
In gran parte dei casi, le espressioni sono aggregazioni, ovvero calcoli che potenzialmente possono coinvolgere più record. Ciò significa che tutti i riferimenti di campo in un'espressione devono essere racchiusi in una funzione di aggregazione. Se non viene utilizzata alcuna funzione di aggregazione, viene utilizzata la funzione Only().
Quando il nome di una misura viene utilizzato all'interno di un'espressione, viene interpretato come un alias per la misura. Ciò consente di riutilizzare un'entità già definita. È possibile utilizzare in questo modo le etichette delle misure principali e le misure dei grafici. Tuttavia, la misura del grafico deve corrispondere allo stesso grafico. Non è possibile utilizzare etichette delle misure in altri grafici.
È possibile definire una misura in modo ricorsivo. In altre parole, la misura può contenere un riferimento a se stessa. Tuttavia, è consigliabile eseguire questa operazione solo nei grafici con poche righe. Le prestazioni calano se il grafico ha molte righe. Se ci sono centinaia di righe, la definizione ricorsiva si arresterà del tutto.
Le variabili possono essere utilizzate in due modi diversi: in un riferimento diretto o in un'espansione con il simbolo del dollaro. Se si utilizza un riferimento diretto, il valore variabile verrà utilizzato nel calcolo. Se si utilizza un'espansione con il simbolo del dollaro, l'intera espansione con il simbolo del dollaro verrà sostituita dal valore variabile prima che l'espressione venga analizzata. Pertanto, i due metodi diversi possono restituire risultati differenti.
Come vengono interpretati i nomi
Un nome all'interno di un'espressione può essere un riferimento a un campo, una variabile, una funzione o una misura. In base alla situazione, il nome viene interpretato in modo diverso.
Esempio:
La stringa XXX rappresenta un campo, una variabile, una funzione o una misura. XXX verrà interpretato come uno di essi a seconda di come l'espressione viene creata.
Espressione | XXX viene interpretato come |
---|---|
XXX | misura, variabile o campo |
$(XXX) | variabile |
Count(XXX) | campo o variabile |
XXX() | function |
Non è consigliabile utilizzare lo stesso nome per un campo e una variabile (o una misura). Ma se si sceglie di farlo comunque e si presenta un'ambiguità, verrà utilizzato il seguente ordine di precedenza.
-
Se il nome è contenuto all'interno di una funzione di aggregazione, un campo ha precedenza su una variabile.
-
Se il nome si trova all'esterno di una funzione di aggregazione, un'etichetta di misura ha precedenza su un nome variabile, che a sua volta ha precedenza su un nome campo.
Regole per le espressioni
Le seguenti regole valgono per le espressioni grafiche:
-
Se un riferimento di campo non è disposto in una funzione di aggregazione, la funzione Only() è utilizzata dall'engine.
-
Tutte le espressioni restituiscono un numero e/o una stringa, a seconda del tipo ritenuto più appropriato.
-
Le funzioni e gli operatori logici restituiscono 0 per False, -1 per True. Le conversioni numero-stringa e stringa-numero sono implicite.
-
Gli operatori logici e le funzioni interpretano 0 come False e tutto il resto come True.
-
Le espressioni che non possono essere valutate correttamente, ad esempio a causa di parametri o funzioni non corretti, restituiscono NULL.