Aggr — funkcja wykresu
Funkcja Aggr() zwraca tablicę wartości wyrażenia obliczonego po wskazanych wymiarach. Może to na przykład być wartość maksymalna sprzedaży według klienta i regionu.
Funkcja Aggr jest przeznaczona do agregacji zagnieżdżonych, w których pierwszy parametr (agregacja wewnętrzna) jest obliczany raz na każdą wartość wymiaru. Wymiary są określone w drugim i kolejnych parametrach.
Ponadto funkcja Aggr powinna być zamknięta w zewnętrznej funkcji agregacji wykorzystującej tablicę wyników z funkcji Aggr jako dane wejściowe do agregacji, w której jest zagnieżdżona.
Składnia:
Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})
Typ zwracanych danych: dual
Argumenty:
Argument | Opis |
---|---|
expr |
Wyrażenie zawierające funkcję agregacji. Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. |
StructuredParameter |
Argument StructuredParameter składa się z wymiaru i opcjonalnie z kryterium sortowania w następującym formacie: (Dimension(Sort-type, Ordering)) Wymiar musi być pojedynczym polem i nie może być wyrażeniem. Na podstawie wymiaru zostanie ustalona tablica wartości, z których będzie wyliczana wartość wyrażenia Aggr. Jeśli podane są kryteria sortowania, obliczona dla wymiaru tablica wartości utworzona przez funkcję Aggr jest sortowana. Jest to istotne, jeśli kolejność sortowania wpływa na wynik wyrażenia zawierającego funkcję Aggr. Szczegółowe informacje na temat używania kryteriów sortowania zawiera temat Dodawanie kryteriów sortowania do wymiaru podanego argumentem StructuredParameter. |
SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
DISTINCT |
Jeśli argument wyrażenia jest poprzedzony kwalifikatorem distinct lub w ogóle nie ma kwalifikatora, dla każdej odrębnej kombinacji wartości wymiarów będzie generowana tylko jedna wartość zwracana. W ten sposób są standardowo dokonywane agregacje. Każda odrębna kombinacja wartości wymiarów będzie generować jeden wiersz na wykresie. |
NODISTINCT |
Jeśli argument wyrażenia jest poprzedzony kwalifikatorem nodistinct, każda kombinacja wartości wymiarów może generować więcej niż jedną wartość zwracaną (w zależności od bazowej struktury danych). Jeśli występuje tylko jeden wymiar, funkcja aggr zwróci tablicę z tą samą liczbą elementów co liczba wierszy w źródle danych. |
Podstawowe funkcje agregacji, takie jak Sum, Min i Avg, zwracają jedną wartość liczbową, natomiast działanie funkcji Aggr() można porównać do utworzenia tymczasowego zestawu wyników (tabeli wirtualnej), na którym wykonywana jest kolejna agregacja. Przykładowe zastosowanie to obliczenie średniej wartości sprzedaży poprzez zsumowanie sprzedaży według klientów w ramach instrukcji Aggr(), a następnie obliczenie średniej zsumowanych wyników: Avg(TOTAL Aggr(Sum(Sales),Customer)).
Ograniczenia:
Każdy wymiar w funkcji Aggr() musi być pojedynczym polem i nie może być wyrażeniem (wymiarem wyliczanym).
Dodawanie kryteriów sortowania do wymiaru podanego argumentem StructuredParameter
W podstawowej postaci argument StructuredParameter w składni funkcji Aggr jest pojedynczym wymiarem. Wyrażenie Aggr(Sum(Sales, Month)) znajduje łączną wartość sprzedaży w każdym miesiącu. Użycie go w obrębie innej funkcji agregacji może jednak dać nieoczekiwane wyniki, jeśli nie zostaną określone kryteria sortowania. Wynika to stąd, że niektóre wymiary można sortować na różne sposoby (w kolejności liczbowej, alfabetycznie itd.).
Argument StructuredParameter funkcji Aggr umożliwia określenie kryteriów sortowania wymiaru w ramach wyrażenia. Pozwala to wymusić określoną kolejność sortowania tabeli wirtualnej generowanej przez funkcję Aggr.
Składnia argumentu StructuredParameter jest następująca:
(FieldName, (Sort-type, Ordering))
Argumenty StructuredParameter można zagnieżdżać:
(FieldName, (FieldName2, (Sort-type, Ordering)))
Typem sortowania może być: NUMERIC, TEXT, FREQUENCY lub LOAD_ORDER.
Z poszczególnymi typami sortowania powiązane są następujące kolejności:
Typ sortowania | Dozwolone kolejności |
---|---|
NUMERIC | ASCENDING, DESCENDING lub REVERSE |
TEXT | ASCENDING, A2Z, DESCENDING, REVERSE lub Z2A |
FREQUENCY | DESCENDING, REVERSE lub ASCENDING |
LOAD_ORDER | ASCENDING, ORIGINAL, DESCENDING lub REVERSE |
Kolejności REVERSE i DESCENDING są równoważne.
W przypadku typu sortowania TEXT kolejności ASCENDING i A2Z są sobie równoważne. Również kolejności DESCENDING, REVERSE i Z2A są sobie równoważne.
W przypadku typu sortowania LOAD_ORDER kolejności ASCENDING i ORIGINAL są sobie równoważne.