Previous — funkcja skryptu
Funkcja Previous() wyszukuje wartość wyrażenia expr przy użyciu danych z poprzedniego rekordu wejściowego. W przypadku pierwszego wiersza tabeli wewnętrznej funkcja zwróci wartość NULL.
Składnia:
Previous(expr)
Typ zwracanych danych: podwójny
Argumenty:
Argument | Opis |
---|---|
expr | Wyrażenie lub pole zawierające mierzone dane. Wyrażenie może zawierać zagnieżdżone funkcje previous() w celu uzyskiwania dostępu do bardziej odległych rekordów. Dane są pobierane bezpośrednio ze źródła danych wejściowych, co umożliwia odwoływanie się również do pól, które nie zostały załadowane do aplikacji QlikView (nie zostały zapisane w asocjacyjnej bazie danych programu). |
Ograniczenia:
W przypadku pierwszego rekordu tabeli wewnętrznej funkcja zwraca wartość NULL.
Przykład 1:
Sales2013:
Load *, (Sales - Previous(Sales) )as Increase Inline [
Month|Sales
1|12
2|13
3|15
4|17
5|21
6|21
7|22
8|23
9|32
10|35
11|40
12|41
] (delimiter is '|');
Korzystając z funkcji Previous() w instrukcji Load, możemy porównać bieżącą wartość Sales z poprzednią wartością i użyć jej w trzecim polu, Increase.
Month | Sales | Increase |
---|---|---|
1 | 12 | - |
2 | 13 | 1 |
3 | 15 | 2 |
4 | 17 | 2 |
5 | 21 | 4 |
6 | 21 | 0 |
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |
Przykład 2:
Sales2013:
Load * Inline [
Month|Sales
1|12
2|13
3|15
4|17
5|21
6|21
7|22
8|23
9|32
10|35
11|40
12|41
] (delimiter is '|');
Sales:
NoConcatenate Load *, (Sales - Previous(Sales) )as Increase Resident Sales2013 where Month > 6;
Drop Table Sales2013;
W tym przykładzie wykluczamy rekordy, w których wartość Month wynosi 6 lub mniej. W celu wykluczenia używamy klauzuli WHERE. Dzięki temu możliwe jest użycie argumentu Previous(), ponieważ funkcja może się odwoływać do danych wykluczonych z ładowania.
W tym przypadku obliczenie Increase dotyczące Month=7 odwołuje się do wartości Sales dla Month=6, co zostało wykluczone z ładowania.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |