Odniesienia do pól, miar i zmiennych
Wyrażenie może zawierać odwołania do pól, zmiennych i miar.
W większości przypadków wyrażenia są agregacjami, czyli obliczeniami, które potencjalnie mogą obejmować wiele rekordów. Oznacza to, że wszystkie odniesienia do pól w wyrażeniach muszą być złożone w funkcję agregacji. Jeśli nie jest używana żadna funkcja agregująca, stosowana jest funkcja Only().
Gdy nazwa miary jest używana wewnątrz wyrażenia, jest interpretowana jako alias miary. Pozwala to na ponowne wykorzystanie już zdefiniowanego elementu. W ten sposób można używać etykiet miar głównych i miar wykresu. Miara wykresu musi jednak znajdować się na tym samym wykresie. Nie można używać etykiet miar na innych wykresach.
Miarę można zdefiniować rekurencyjnie. Innymi słowy, miara może zawierać odniesienie do samej siebie. Należy to jednak robić tylko na wykresach z kilkoma wierszami. Jeśli wykres ma wiele wierszy, wydajność spada. Jeśli istnieją setki wierszy, definicja rekurencyjna całkowicie przestaje działać.
Zmiennej można używać na dwa różne sposoby: w bezpośrednim odwołaniu lub w rozszerzeniu przez znak dolara. Jeśli użyjesz bezpośredniego odniesienia, wartość zmiennej zostanie użyta w obliczeniach. Jeśli użyjesz rozszerzenia przez znak dolara, całe rozszerzenie przez znak dolara zostanie zastąpione wartością zmiennej, zanim wyrażenie zostanie przeanalizowane. Dlatego te dwie różne metody mogą zwracać różne wyniki.
Interpretacja nazw
Nazwa wewnątrz wyrażenia może być odwołaniem do pola, zmiennej, funkcji lub miary. W zależności od sytuacji nazwa jest różnie interpretowana.
Przykład:
Ciąg XXX reprezentuje pole, zmienną, funkcję lub miarę. Ciąg XXX będzie interpretowany jako jeden z tych obiektów w zależności od sposobu utworzenia wyrażenia.
Wyrażenie | XXX interpretowane jako |
---|---|
XXX | miara, zmienna lub pole |
$(XXX) | zmienna |
Count(XXX) | pole lub zmienna |
XXX() | funkcja |
Nie należy używać tej samej nazwy dla pola i zmiennej (lub miary). Jeśli jednak to zrobisz i pojawi się niejednoznaczność, zostanie zastosowana następująca kolejność pierwszeństwa:
-
Jeśli nazwa zostanie znaleziona wewnątrz funkcji agregacji, pole będzie mieć pierwszeństwo przed zmienną.
-
Jeżeli nazwa zostanie znaleziona poza funkcją agregacji, etykieta miary będzie mieć pierwszeństwo przed nazwą zmiennej, która z kolei ma pierwszeństwo przed nazwą pola.
Reguły dotyczące wyrażeń
W przypadku wyrażeń wykresu zastosowanie mają następujące reguły:
-
Jeśli odwołanie do pola nie będzie opakowane w funkcję agregacji, aparat użyje funkcji Only().
-
Wszystkie wyrażenia zwracają liczbę i/lub łańcuch — w zależności od tego, co jest właściwe.
-
Funkcje logiczne i operatory logiczne zwracają 0 dla wartości False i -1 dla wartości True. Konwersje liczb na ciągi znaków i ciągów znaków na liczby są niejawne.
-
Operatory i funkcje logiczne interpretują 0 jako wartość False, a wszystkie inne liczby jako wartość True.
-
Wyrażenia, których prawidłowa ocena jest niemożliwa, np. z powodu nieprawidłowych parametrów lub funkcji, zwracają wartość NULL.