Przeskocz do zawartości głównej

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:  

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)).

WskazówkaFunkcji Aggr() można używać w wymiarach wyliczanych, do tworzenia zagnieżdżanych agregacji wykresów na wielu poziomach.

Ograniczenia:  

Każdy wymiar w funkcji Aggr() musi być pojedynczym polem i nie może być wyrażeniem (wymiarem wyliczanym).

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:

Dozwolone typy określania 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.

Przykłady: Wyrażenia wykresu używające funkcji Aggr