Top
Top() Funkcja oblicza wartość wyrażenia w pierwszym (najwyższym) wierszu segmentu kolumny w tabeli. Wiersz wybierany do obliczeń zależy od wartości opcjonalnego parametru offset — domyślnie jest to wiersz najwyższy. W przypadku wykresów niebędących tabelami wynik funkcji Top() jest obliczany na pierwszym wierszu bieżącej kolumny w tabeli prostej odpowiadającej wykresowi.
Składnia:
Top([TOTAL] expr [ , offset [,count ]])
Typ zwracanych danych: podwójny
Argumenty:
- expr: Wyrażenie lub pole zawierające mierzone dane.
- offset: Określenie wartości offset n większej niż 0 powoduje przeniesienie oceny wyrażenia o n wierszy w górę od bieżącego wiersza. Podanie argumentu offset równego 0 spowoduje obliczenie wartości wyrażenia dla bieżącego wiersza. Określenie ujemnej wartości argumentu offset sprawia, że funkcja Above działa tak samo jak funkcja Below z odpowiednią dodatnią wartością argumentu offset.
- count: Jeśli trzeci argument count będzie większy od 1, funkcja zwróci zakres wartości count, po jednej dla każdego z count wierszy tabeli liczonych w górę od pierwotnej komórki. W tej postaci funkcja może być używana jako argument dla specjalnych funkcji zakresu. Funkcje zakresu
- TOTAL: Jeśli tabela jest jednowymiarowa lub jako argument zostanie podany kwalifikator TOTAL, bieżący segment kolumny jest zawsze równy całej kolumnie.
Ograniczenia:
-
Sortowanie według wartości Y w wykresach albo sortowanie według kolumn wyrażeń w tabelach jest niedozwolone, gdy w dowolnym z wyrażeń wykresu stosowana jest ta funkcja wykresu. W takiej sytuacji te opcje sortowania są automatycznie wyłączone. Kiedy używasz tej funkcji wykresu w wizualizacji albo tabeli, sortowanie wizualizacji zostanie przywrócone do sortowania danych wejściowych tej funkcji.
-
Wywołania rekurencyjne będą zwracać NULL.
Przykłady i wyniki:
Przykład 1:
Customer | Sum(Sales) | Top(Sum(Sales)) | Sum(Sales) + Top(Sum(Sales)) | Top offset 3 |
---|---|---|---|---|
2566 | 587 | 3153 | 3249 | |
Astrida | 587 | 587 | 1174 | 1270 |
Betacab | 539 | 587 | 1126 | 1222 |
Canutility | 683 | 587 | 1270 | 1366 |
Divadip | 757 | 587 | 1344 | 1440 |
W tym przypadku stosowny wykres został utworzony na podstawie wymiaru Customer oraz miar: Sum(Sales) i Top(Sum(Sales)).
Kolumna Top(Sum(Sales)) zwraca wartość 587 dla wszystkich wierszy, ponieważ jest to wartość najwyższego wiersza Astrida.
W tabeli tej przedstawione są również bardziej złożone miary: jedna utworzona na podstawie wyrażenia Sum(Sales)+Top(Sum(Sales)) i jedna zatytułowana Top offset 3, utworzona na podstawie wyrażenia Sum(Sales)+Top(Sum(Sales), 3) z argumentem offset o wartości 3. W efekcie jej działania wartość Sum(Sales) dla bieżącego wiersza jest dodawana do wartości z trzeciego wiersza liczonego od najwyższego wiersza (wartość z wiersza bieżącego plus wartość dla klienta Canutility).
Przykład 2:
W tym przypadku do wykresów zostały dodane kolejne wymiary: Month i Product. W przypadku wykresów wielowymiarowych wyniki wyrażeń zawierających funkcje Above, Below, Top i Bottom są zależne od kolejności posortowania wymiarów kolumn przez QlikView. QlikView oblicza wartości funkcji na podstawie segmentów kolumny uzyskanych z wymiaru sortowanego jako ostatni. Kolejność sortowania kolumn określa się w polu Sortowanie i może ona być inna od kolejności wyświetlania kolumn w tabeli. (W celu oszczędności miejsca niektóre wiersze nie zostały pokazane).
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 46 |
Astrida | AA | Mar | 70 | 46 |
... | ... | ... | ... | ... |
Astrida | AA | Sep | 78 | 46 |
Astrida | AA | Oct | 12 | 46 |
Astrida | AA | Nov | 78 | 46 |
Astrida | AA | Dec | 22 | 46 |
Astrida | BB | Jan | 46 | 46 |
Customer | Product | Month | Sum(Sales) | First value |
---|---|---|---|---|
2566 | - | |||
Astrida | AA | Jan | 46 | 46 |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | 60 |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | 70 |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | 13 |
Astrida | BB | Apr | 13 | 13 |
Dodatkowe informacje zawiera Przykład 2 w opisie funkcji Above.
Przykład 3:
Funkcję Top można stosować jako źródło danych wejściowych dla funkcji zakresu. Na przykład: RangeAvg (Top(Sum(Sales),1,3)).
W funkcji Top() argument offset jest ustawiony na 1, a argument count jest ustawiony na 3. Funkcja ta znajduje wyniki wyrażenia Sum(Sales) w trzech wierszach począwszy od wiersza pod najniższym wierszem w segmencie kolumny (ponieważ offset=1), oraz i w dwóch wierszach pod nim (o ile jest tam wiersz). Wspomniane trzy wartości są stosowane jako dane wejściowe dla funkcji RangeAvg(), która znajduje średnią wartości w określonym szeregu liczbowym.
Tabela z kolumną Customer jako wymiarem zwraca następujące wyniki dla wyrażenia RangeAvg().
Customer | RangeAvg (Top(Sum(Sales),1,3)) |
---|---|
Astrida | 603 |
Betacab | 603 |
Canutility | 603 |
Divadip | 603 |
Dane zastosowane w przykładach:
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
crosstable (Month, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|');
Aby miesiące były sortowane we właściwej kolejności, podczas tworzenia arkuszy przejdź do karty Sort we właściwościach wykresu i zaznacz pole wyboru Expression w sekcji Sort by. W polu wyrażenia podaj Monthnumber.