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 の現在の値を先行する値と比較でき、3 番目の項目 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;
この例では、WHERE 句を使用することによって、Month が 6 以下であるレコードを除外します。これによって、この関数はロードから除外されたデータを参照できるので、引き続き Previous() を使用できます。
この場合、Month=7 の Increase の計算は Month=6 の Sales の値を参照し、ロードから除外されます。
Month | Sales | Increase |
---|---|---|
7 | 22 | 1 |
8 | 23 | 1 |
9 | 32 | 9 |
10 | 35 | 3 |
11 | 40 | 5 |
12 | 41 | 1 |