Analiza zestawów i wyrażenia zestawów

W ramach analizy zestawów można zdefiniować zestaw (grupę) wartości danych, który jest inny niż zwykły zestaw zdefiniowany przez bieżącą selekcję.

Zazwyczaj po dokonaniu selekcji funkcje agregacji, na przykład Sum, Max, Min, Avg i Count, dokonują agregacji w związku z dokonanymi selekcjami: bieżącymi selekcjami. Selekcje takie automatycznie definiują zestaw danych, który będzie poddany agregacji. W ramach analizy zestawów można zdefiniować grupę niezależną od bieżących selekcji. Może to być przydatne wówczas, gdy należy przedstawić konkretną wartość, na przykład udział rynkowy produktu w ramach wszystkich regionów, niezależnie od bieżących selekcji.

Analiza zestawów jest również bardzo przydatna podczas tworzenia różnych typów porównań, na przykład porównania produktów sprzedających się najlepiej i najgorzej lub porównania wartości tego- i ubiegłorocznych.

Przykładowo można z listy wartości w dokumencie wybrać rok 2010. Agregacje będą wówczas oparte na tej selekcji, a na wykresach będą przedstawione tylko wartości tegoroczne. W przypadku dokonania nowej selekcji wykresy zostaną stosownie zaktualizowane. Agregacje są wykonywane na zestawach potencjalnych rekordów zdefiniowanych przez bieżące selekcje. W ramach analizy zestawów można zdefiniować pożądany zestaw niezależnie od dokonanych selekcji.

Tworzenie wyrażeń zestawów

Przed przedstawieniem poszczególnych elementów analizy zestawów należy zasygnalizować różnicę między pojęciami „wyrażenie zestawu” i „analiza zestawów”.

Definiowanie zestawu wartości pól jest określane mianem „definiowania wyrażenia zestawu”, a analizowanie danych przy użyciu wyrażeń zestawów — „analizą zestawów”. W związku z powyższym pozostała część tej sekcji skupia się na wyrażeniach zestawu i ich składnikach.

Oto przykład analizy zestawów: sum( {$<Year={2009}>} Sales ), gdzie {$<Year={2009}>} jest wyrażeniem zestawu.

Można określić dwie ogólne zasady składni wyrażenia zestawu:

  • Wyrażenie zestawu musi być zastosowane w funkcji agregacji. W tym przykładzie funkcją agregacji jest sum(Sales).
  • Wyrażenie zestawu musi być ujęte w nawiasy klamrowe, {}. W tym przykładzie wyrażenie zestawu wygląda następująco: {$<Year={2009}>}.

Wyrażenie zestawu składa się z kombinacji następujących elementów:

  • Identyfikatory. Co najmniej jeden identyfikator definiuje relację między wyrażeniem zestawu i tym, co jest oceniane w ramach pozostałej części wyrażenia. Proste wyrażenie zestawu składa się z jednego identyfikatora, na przykład znaku dolara {$}, który oznacza wszystkie rekordy w bieżącej selekcji.
  • Operatory. Jeśli określono więcej niż jeden identyfikator, stosuje się co najmniej jeden operator w celu zawężenia zakresu danych przez określenie sposobu połączenia zestawów danych reprezentowanych przez identyfikatory w celu utworzenia na przykład zestawu podrzędnego albo nadrzędnego.
  • Modyfikatory. Do wyrażenia zestawu można dołączyć co najmniej jeden modyfikator, aby zmienić dokonaną selekcję. Modyfikator może być używany samodzielnie lub w celu modyfikacji identyfikatora, aby przefiltrować zestaw danych.

Przykłady:  

Przykład 1:  

{$<Year={2009}>}

To wyrażenie zestawu zawiera identyfikator $ i modyfikator <Year={2009>}. Nie uwzględniono tu operatora. Wyrażenie zestawu można zinterpretować w następujący sposób: „Wszystkie rekordy w bieżącej selekcji, które są właściwe dla roku 2009”.

Przykład 2:  

Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales)

To wyrażenie zestawu zawiera identyfikatory $ i 1, operator + oraz modyfikatory <Year={2009}> i <Country={'Sweden'}>.

To wyrażenie zestawu ma sumować wartość sprzedaży dla 2009 r. powiązaną z bieżącymi selekcjami i dodaje pełny zestaw danych powiązanych z krajem Sweden we wszystkich latach.

Uwaga: Wyrażenia zestawu mogą być stosowane wyłącznie w wyrażeniach wykresu (nie mogą być stosowane w wyrażeniach skryptów).

Identyfikatory, modyfikatory i operatory zostały opisane bardziej szczegółowo poniżej.

Identyfikatory

Identyfikatory definiują relację między wyrażeniem zestawu a ocenianymi wartościami pól lub wyrażeniem.

W tym wyrażeniu sum( {$<Year={2009}>} Sales ) identyfikatorem jest znak dolara $, który oznacza, że poddawany ocenie zestaw rekordów obejmuje wszystkie rekordy w bieżącej selekcji. Zestaw ten jest następnie dalej filtrowany przez modyfikator zawarty w tym wyrażeniu zestawu. W bardziej złożonych wyrażeniach zestawu dwa identyfikatory mogą być połączone za pomocą operatora.

W poniższej tabeli przedstawiono kilka typowych identyfikatorów.

Identyfikator Opis
1 Reprezentuje cały zestaw wszystkich rekordów w aplikacji niezależnie od dokonanych selekcji.
$ Reprezentuje rekordy bieżącej selekcji. To wyrażenie zestawu {$} jest zatem równoważne niepodaniu żadnego wyrażenia zestawu.
$1 Reprezentuje poprzednią selekcję. $2 reprezentuje selekcję przed poprzednią selekcją itd.
$_1 Reprezentuje następną (kolejną) selekcję. $_2 reprezentuje selekcję po następnej selekcji itd.
BM01 Można zastosować dowolny identyfikator zakładki lub dowolną nazwę zakładki.
MyAltState Można przywołać selekcje dokonane w stanie alternatywnym przez podanie nazwy tego stanu.

W poniższej tabeli przedstawiono przykłady innych identyfikatorów.

Przykład Wynik
sum ({1} Sales) Zwraca wartość łącznej sprzedaży dla danego dokumentu. Ignorowane są selekcje, ale nie wymiary.

sum ({$} Sales)

Zwraca wartość sprzedaży dla bieżącej selekcji (zwraca to samo co funkcja sum(Sales)).

sum ({$1} Sales)

Zwraca wartość sprzedaży dla poprzedniej selekcji.

sum ({BM01} Sales)

Zwraca wartość sprzedaży dla zakładki o nazwie BM01.

Operatory

Operatory służą do uwzględniania, wykluczania albo dzielenia części lub całych zestawów danych. Wszystkie operatory korzystają z zestawów jako operandów i zwracają zestaw jako wynik.

W tej tabeli przedstawiono operatory, które mogą być stosowane w wyrażeniach zestawu.

Operator Opis
+ Suma. Operacja dwuargumentowa zwracająca zestaw zawierający wszystkie wiersze, które należą do któregokolwiek z dwóch zestawów wejściowych.
- Wykluczenie. Operacja dwuargumentowa zwracająca zestaw wszystkich wierszy, które należą do pierwszego, a nie należą do drugiego z dwóch zestawów wejściowych. W przypadku użycia jako operator jednoargumentowy zwraca dopełnienie zestawu wejściowego.
* Część wspólna. Operacja dwuargumentowa zwracająca zestaw zawierający wszystkie wiersze, które należą do obu zestawów wejściowych.
/ Różnica symetryczna (XOR). Operacja dwuargumentowa zwracająca zestaw zawierający wszystkie wiersze, które należą tylko do jednego z zestawów wejściowych (ale nie do obu z nich).

W poniższej tabeli przedstawiono przykłady operatorów.

Przykłady Wyniki
sum( {1-$} Sales ) Zwraca wartość sprzedaży dla wszystkiego, co zostało wykluczone przez selekcję.
sum( {$*BM01} Sales ) Zwraca wartość sprzedaży dla części wspólnej selekcji i zakładki BM01.
sum( {-($+BM01)} Sales )

Zwraca wartość sprzedaży wykluczoną przez selekcję i zakładkę BM01.

Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales) Zwraca wartość sprzedaży dla 2009 r. powiązaną z bieżącymi selekcjami i dodaje pełny zestaw danych powiązanych z krajem Sweden we wszystkich latach.

Modyfikatory

Modyfikatory służą do uzupełniania lub modyfikowania dokonanej selekcji. Modyfikacje takie można zapisać w wyrażeniu zestawu. Modyfikator zawiera co najmniej jedną nazwę pola. Po każdej z takich nazw określana jest co najmniej jedna selekcja, która może zostać dokonany w tym polu. Modyfikatory są ujęte w nawiasy trójkątne, <>.

Modyfikator zestawu modyfikuje selekcję poprzedniego identyfikatora zestawu. Jeśli brak jest odniesienia do identyfikatora zestawu, uznaje się za taki bieżący stan selekcji.

W poniższej tabeli przedstawiono przykłady modyfikatorów.

Przykład Wynik
sum({$<OrderDate = DeliveryDate>} Sales) Zwraca wartość sprzedaży dla bieżącej selekcji, gdzie OrderDate = DeliveryDate.

sum({1<Region = {US}>} Sales)

Zwraca wartość sprzedaży dla regionu US, ignorując bieżącą selekcję.

sum({$<Region = >} Sales)

Zwraca wartość sprzedaży dla tej selekcji, ale usuwa selekcję w wymiarze Region.

sum({<Region = >} Sales)

Zwraca tę samą wartość co w przykładzie powyżej. Jeśli modyfikowany zestaw zostanie pominięty, zakładany jest stan dziedziczone.

sum({$<Year={2000}, Region={“U*”}>} Sales) Zwraca wartość sprzedaży dla bieżącej selekcji, ale z nowymi selekcjami w wymiarach Year i Region.

Zob.: Modyfikatory zestawów aby wyświetlić dokładniejszy opis modyfikatorów i sposobu ich stosowania w bardziej złożonych analizach zestawów.