Previous — функция скрипта
Previous() находит значение выражения expr с помощью данных из ранее введенной записи. В первой записи внутренней таблицы функция возвратит значение NULL.
Синтаксис:
Previous(expr)
Возвращаемые типы данных: двойное значение
Аргументы:
Аргумент | Описание |
---|---|
expr | Выражение или поле, содержащее данные для измерения. Выражение может содержать вложенные функции previous(), чтобы получить доступ к более ранним записям. Данные выбираются из входного источника напрямую, что также позволяет ссылаться на поля, которые не были загружены в программу QlikView, то есть даже если они не были сохранены в ассоциативной базе данных. |
Ограничения:
В первой записи внутренней таблицы функция возвращает значение NULL.
Пример 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 '|');
При использовании функции Previous() в операторе Load можно сравнить текущее значение элемента Sales с предшествующим значением и использовать его в третьем поле 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 |
Пример 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;
В данном примере включены записи, где Month составляет 6 или менее в результате использования выражения WHERE. При этом по-прежнему можно использовать Previous(), так как функция может ссылаться на данные, исключенные из загрузки.
В этом случае вычисление Increase для Month=7 ссылается на значение Sales для Month=6, исключенное из загрузки.
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |