Analiza zestawów
Dokonując wyboru w aplikacji, definiujesz podzestaw rekordów w danych. Funkcje agregacji, takie jak Sum(), Max(), Min(), Avg() i Count() są obliczane na podstawie tego podzestawu.
Innymi słowy, Twój wybór definiuje zakres agregacji i zestaw rekordów, na których wykonywane są obliczenia.
W ramach analizy zestawów można zdefiniować zakres, który jest inny niż zestaw rekordów zdefiniowany przez bieżący wybór. Ten nowy zakres można także uznać za wybór alternatywny.
Może się to przydać do porównania bieżącego wyboru z konkretną wartością, na przykład wartością z zeszłego roku lub udziałem w rynku globalnym.
Wyrażenia zestawu
Wyrażenia zestawów mogą być używane wewnątrz i na zewnątrz funkcji agregacji oraz są ujęte w nawiasy klamrowe.
Przykład: Wewnętrzne wyrażenie zestawu
Sum( {$<Year={2021}>} Sales )
Przykład: Zewnętrzne wyrażenie zestawu
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
Więcej informacji o wewnętrznych i zewnętrznych wyrażeniach zestawu zawiera temat Wewnętrzne i zewnętrzne wyrażenia zestawu.
Wyrażenie zestawu składa się z kombinacji następujących elementów:
-
Identyfikatory. Identyfikator zestawu reprezentuje wybór zdefiniowany gdzie indziej. Reprezentuje również określony zestaw rekordów w danych. Może to być bieżący wybór, wybór z zakładki lub wybór ze stanu alternatywnego. Proste wyrażenie zestawu składa się z jednego identyfikatora, na przykład znaku dolara {$}, który oznacza wszystkie rekordy w bieżącej selekcji.
Przykłady: $, 1, BookMark1, State2
Zob.: Identyfikatory zestawu
-
Operatory. Operator zestawu może być używany do tworzenia sum, różnic lub części wspólnych między różnymi identyfikatorami zestawów. W ten sposób można utworzyć podzestaw lub nadzestaw wyborów definiowanych przez identyfikatory zestawów.
Przykłady: +, -, *, /
Zob.: Operatory zestawów
-
Modyfikatory. Do wyrażenia zestawu można dodać modyfikator zestawu, aby zmienić wybór. Modyfikator może być również używany samodzielnie, a następnie zmodyfikuje on domyślny identyfikator. Modyfikator musi być ujęty w nawiasy kątowe: <…>.
Przykłady: <Year={2020}>, <Supplier={ACME}>
Zob.: Modyfikatory zestawów
Elementy są łączone w celu tworzenia wyrażeń zestawu.
Na przykład powyższe wyrażenie zestawu jest zbudowane na podstawie agregacji Sum(Sales).
Pierwszy operand zwraca sprzedaż za rok 2021 dla bieżącego wyboru, na co wskazuje identyfikator zestawu $ i modyfikator zawierający wybór roku 2021. Drugi operand zwraca Sales dla Sweden i ignoruje bieżące zaznaczenie, które jest wskazywane przez identyfikator zestawu 1.
Na koniec wyrażenie zwraca zestaw zawierający wszystkie rekordy, które należą do któregokolwiek z dwóch operandów zestawu, jak wskazuje to operator zestawu +.
Aby uzyskać pełny opis składni, zobacz temat Składnia wyrażeń zestawu.
Przykłady
Przykłady łączące powyższe elementy wyrażenia zestawu są dostępne w następujących tematach:
Aby wypróbować inne wyrażenia, zobacz temat Kurs — Tworzenie wyrażenia zestawu.
Zestawy naturalne
Wyrażenie zestawu reprezentuje zazwyczaj zarówno zestaw rekordów w modelu danych, jak i wybór definiujący ten podzestaw danych. W tym przypadku zestaw nazywamy zestawem naturalnym.
Identyfikatory zestawów, z modyfikatorami zestawów lub bez nich, zawsze reprezentują zestawy naturalne.
Jednak wyrażenie zestawu używające operatorów zestawu również reprezentuje podzestaw rekordów, ale zasadniczo nadal nie można go opisać za pomocą wyboru wartości pól. Takie wyrażenie jest zestawem nienaturalnym.
Na przykład zestaw określony przez {1-$} nie może zawsze być zdefiniowany przez wybór. Nie jest więc zestawem naturalnym. Można to pokazać, ładując następujące dane, dodając je do tabeli, a następnie dokonując wyborów za pomocą paneli filtrowania.
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Dokonując wyborów dla Dim1 i Dim2, otrzymujesz widok pokazany w poniższej tabeli.
Wyrażenie zestawu w pierwszej mierze wykorzystuje zestaw naturalny: odpowiada wyborowi dokonanemu przez {$}.
Druga miara jest inna. Wykorzystuje ona {1-$}. Nie można dokonać wyboru odpowiadającego temu zestawowi, więc jest to zestaw nienaturalny.
To rozróżnienie ma szereg konsekwencji:
-
Modyfikatory zestawów można stosować tylko do identyfikatorów zestawów. Nie można ich stosować do dowolnego wyrażenia zestawu. Na przykład nie można użyć wyrażenia zestawu takiego jak:
{ (BM01 * BM02) <Field={x,y}> }
W tym przypadku zwykłe (okrągłe) nawiasy oznaczają, że część wspólna BM01 i BM02 powinna zostać oceniona przed zastosowaniem modyfikatora zestawu. To dlatego, że nie ma zestawu elementów, który można zmodyfikować.
-
W funkcjach elementów P() i E() nie można używać zestawów nienaturalnych. Funkcje te zwracają zestaw elementów, ale nie można wydedukować zestawu elementów z zestawu nienaturalnego.
-
Miarę wykorzystującą zestaw nienaturalny nie zawsze można przypisać do właściwej wartości wymiaru, jeśli model danych zawiera wiele tabel. Na przykład na poniższym wykresie niektóre wykluczone wartości sprzedaży są przypisane do prawidłowego Country, podczas gdy inne mają NULL jako Country.
Prawidłowe przypisanie zależy od modelu danych. W takim przypadku wartości nie można przypisać, jeśli dotyczy kraju wykluczonego przez wybór.
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. |
Przykład | Wynik |
---|---|
sum ({1} Sales) | Zwraca wartość łącznej sprzedaży dla danej aplikacji. Ignorowane są selekcje, ale nie wymiary. |
sum ({$} Sales) |
Zwraca wartość sprzedaży dla bieżącego wyboru (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. |
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 parametr $. |
sum({$<Year={2000}, Region={“U*”}>} Sales) | Zwraca wartość sprzedaży dla bieżącej selekcji, ale z nowymi selekcjami w wymiarach Year i Region. |