ウィンドウ関数を使用した数式列の追加

ウィンドウ関数を使用した数式列の追加

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。



ウィンドウ関数は、テーブル上の行グループに対して計算を実行するために使用されます。この行の集合は「ウィンドウ」と呼ばれます。window functions を使用することで、現在の行を基準としたデータのローリングウィンドウに基づいた合計や計算を行うことができます。

通常の集計関数が1行または複数行に適用されて単一の出力を返すのに対し、window function はウィンドウ(行の集合)に適用しても、出力で全ての行をまとめることはありません。結果として、各行は下記の画像のように結果に保持されます。




window functions の詳細や例については、この動画をご覧ください。




DataPrep におけるウィンドウ関数一覧

ローリング合計

rolling_sum ( col1 , rowsbefore , rowsafter )

現在の行を基準に、指定した前後の行数を含むウィンドウ内の行のローリング合計値を返します。

パラメーター
名前
説明

col1

小数

データ元の列を指定します。このパラメーターは入力必須で、数値の値を持つ列、または数値を返す式である必要があります。

rowsbefore

番号

【オプション】現在の行の前にある行数を指定します。初期値は-1で、現在の行より前のすべての行が含まれます。

rowsafter

番号

【オプション】現在の行の後にある行数を指定します。初期値は+10、-10で、現在の行を含みます。

関数
rowsの並べ替え基準
rowsのグループ化基準
rolling_sum(`価格`, 1, 1)
日付 商品
入力
日付 商品 価格
2012/10/04 文房具 100
2012/01/22 文房具 200
2012/02/21 食料品 120
2012/05/12 食料品 100
2012/06/15 食料品 110
出力
日付 商品
価格
Rolling_sum
21/02/2012 食料品 120 220
12/05/2012 食料品 100 330
15/06/2012 食料品 110 210
22/01/2012
文房具
200
300
10/04/2012
文房具
100
300
メモ : Optional パラメーターは省略可能で、初期設定値が自動で適用されます。例: rolling_sum(`価格 ` ) は rolling_sum(`価格 ` , -1, +10、-10) と同じ意味になります。



Rolling 平均


rolling_avg ( col1 , rowsbefore , rowsafter )

指定したウィンドウ内の行数に基づいて、rolling平均値を現在行に対して返します。

パラメーター
ro
名前
説明

col1

小数

データ元の列を指定します。このパラメーターは必須で、列または数値を返す式から取得できる数値である必要があります。

rowsbefore

番号

【オプション】現在行の前の行数を指定します。初期値は -1 で、現在行の前にあるすべての行が対象となります。

rowsafter

番号

【オプション】現在行の後の行数を指定します。初期値は +10、-10 で、現在行も含まれます。

関数
rowsを並べ替え
rowsをグループ化
rolling_avg(`価格` , 1 , 1)
日付 商品
入力
日付 商品 価格
2012/10/04 文房具 100
2012/01/22 文房具 200
2012/02/21 食料品 120
2012/05/12
食料品
100
2012/06/15
食料品
110
出力
日付 商品 価格 Rolling_avg
21/02/2012 食料品 120 110
12/05/2012 食料品 100
110
15/06/2012 食料品 110 105
22/01/2012
文房具
200
150
10/04/2012
文房具
100
150
メモ Optional パラメーターはスキップ可能で、初期設定値が自動的に適用されます。例: rolling_avg(`価格`) は rolling_avg(`価格`, -1, +10、-10) と同じ意味になります。



Rolling 最小

rolling_min(col1,rowsbefore,rowsafter)

指定した行ウィンドウ内で、rolling 最小値を現在の行から前後の行を含めて返します。

パラメーター
名前
説明

col1

小数

データ元の列を指定します。このパラメーターは入力必須で、列または数値を返す式である必要があります。

rowsbefore

番号

【オプション】現在の行より前の行数を指定します。初期値は-1で、すべての前の行を含みます。

rowsafter

番号

【オプション】現在の行より後の行数を指定します。初期値は+10、-10で、現在の行を含みます。

関数
rowsを並べ替え基準
rowsをグループ化基準
rolling_min(`価格`, 1, 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 Rolling_min
21/02/2012 食料品 120
100
12/05/2012 食料品 100
100
15/06/2012 食料品 110 100
22/01/2012
文房具
200
100
10/04/2012
文房具
100
100
メモOptional パラメーターは省略可能であり、初期設定の値が自動的に適用されます。例えば、rolling_min(`価格``) は rolling_min(`価格`, -1, +10、-10) と同じ意味になります。


Rolling 最大

rolling_max(col1,rowsbefore,rowsafter)

指定したウィンドウ内の行において、rolling 最大値を現在の行を中心に前後の指定した行数分から算出して返します。

パラメーター
名前
説明

col1

小数

データ元となる列を指定します。このパラメーターは入力必須であり、列または数値を返す式でなければなりません。

rowsbefore

番号

【オプション】現在の行より前に含める行数を指定します。初期値は-1で、現在の行より前のすべての行が含まれます。

rowsafter

番号

【オプション】現在の行より後に含める行数を指定します。初期値は+10、-10で、現在の行も含まれます。

関数
rows を並べ替え
rows をグループ化
rolling_max(`価格`, 1, 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格
Rolling_max
21/02/2012 食料品 120
120
12/05/2012 食料品 100 120
15/06/2012 食料品 110 110
22/01/2012
文房具
200
200
10/04/2012
文房具
100
200
メモOptional パラメーターは省略可能で、初期設定値が自動的に適用されます。例:rolling_max(`価格`) は rolling_max(`価格`, -1, +10、-10) と同じ意味になります。


ローリング標準偏差

rolling_stddev(col1,rowsbefore,rowsafter)

指定したウィンドウ範囲に含まれる行の中から、ローリング標準偏差の値を現在の行を基準にして算出します。

パラメーター
名前
説明

col1

小数

データ元となる列を指定します。このパラメーターは必須で、列または数値を返す式から取得される数値である必要があります。

rowsbefore

番号

【オプション】現在の行より前に含める行数を指定します。初期値は -1 で、現在の行より前のすべての行を含みます。

rowsafter

番号

【オプション】現在の行より後に含める行数を指定します。初期値は +10、-10 で、現在の行も含まれます。

関数
rows を並べ替え
rows をグループ化
rolling_stddev(`価格` , 1 , 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 Rolling_stddev
21/02/2012 食料品 120
10
12/05/2012 食料品 100 8.16496580927726
15/06/2012 食料品 110
5
22/01/2012
文房具
200
50
10/04/2012
文房具
100
50
メモ: Optional パラメーターは省略可能で、初期設定値が自動で適用されます。 例: rolling_stddev(` 価格`) は rolling_stddev(`価格`, -1, +10、-10) と同じ動作です。


ローリング分散

rolling_variance ( col1 , rowsbefore , rowsafter )

指定した行ウィンドウ内で、現在の行を基準に前後の行数を含めたrolling variance値を返します。

パラメーター
名前
説明

col1

小数

データ元の列を指定します。このパラメーターは入力必須であり、数値の値を持つ列、または数値を返す式である必要があります。

rowsbefore

番号

【任意】現在行の前に含める行数を指定します。初期値は-1で、現在行より前のすべての行が含まれます。

rowsafter

番号

【任意】現在行の後に含める行数を指定します。初期値は+10、-10で、現在行も含まれます。

関数
rowsを並べ替える基準
rowsのグループ化基準
rolling_variance(`価格` , 1 , 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 Rolling_variance
21/02/2012 食料品 120
100
12/05/2012 食料品 100
66.66666666666667
15/06/2012 食料品 110 25
22/01/2012
文房具
200
2500
10/04/2012
文房具
100
2500
メモ : Optional パラメーターはスキップ可能で、初期設定値は自動で適用されます。例:rolling_variance(` 価格`) は rolling_variance(`価格`, -1, +10、-10) と同じです。



Rolling 件数

rolling_count ( col1 , rowsbefore , rowsafter )

ウィンドウ内の行(現在の行の前後に指定した行数)において、null でない rolling 件数の値を返します。

パラメーター
名前
説明

col1

小数

データ元の列を指定します。このパラメーターは必須で、列または数値を返す式のいずれかの数値の値である必要があります。

rowsbefore

番号

【オプション】現在の行の前にある行数を指定します。初期値は -1 で、現在の行より前のすべての行が含まれます。

rowsafter

番号

【オプション】現在の行の後にある行数を指定します。初期値は +10、-10 で、現在の行を含みます。

関数
rowsの並べ替え基準
rowsのグループ化基準
rolling_count(`価格` , 1 , 1)
日付 商品
入力
日付 商品 価格
2012/10/04 文房具 100
2012/01/22 文房具 200
2012/02/21 食料品 120
2012/05/12
食料品
100
2012/06/15
食料品
110
出力
日付 商品 価格 Rolling_count
21/02/2012 食料品 120
2
12/05/2012 食料品 100 3
15/06/2012 食料品 110 2
22/01/2012
文房具
200
2
10/04/2012
文房具
100
2
メモ: Optional パラメーターはスキップでき、初期設定値が自動で適用されます。例: rolling_count(`価格 `) は rolling_count(`価格`, -1, +10、-10) と同じ意味です。


Row 番号

row_number ()

並べ替えやグループの条件に基づき、ウィンドウ内の各行に対して行番号を返します。


関数
並べ替え基準
グループ化基準
row_number()
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 行番号
21/02/2012 食料品 120
1
12/05/2012 食料品 100 2
15/06/2012 食料品 110
3
22 /01/2012
文房具
200
1
10/04/2012
文房具
100
2


Fill

fill ( col1 , fillEmpty , rowsbefore , rowsafter )

指定した列の空であるセルに対し、前後の行から最も近い空でない値で補完します。ウィンドウは現在の行を中心に、指定した前後の行数分が対象となります。

パラメーター
名前
説明

col1

小数

データ元となる列を指定します。このパラメーターは入力必須であり、数値の値を持つ列または数値を返す式である必要があります。

fillEmpty

Boolean

空である行を補完する場合は真、そうでない場合は無効を指定します。

rowsbefore

番号

【オプション】現在の行より前に対象とする行数を指定します。初期値は-1で、これは現在の行より前のすべての行を含みます。

rowsafter

番号

【オプション】現在の行より後に対象とする行数を指定します。初期値は+10、-10で、現在の行も含みます。

関数
rows を並べ替える基準
rows をグループ化する基準
fill(`価格`, 無効, 1 , 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 食料品
21/02/2012 食料品
12/05/2012
食料品
120
15/06/2012
食料品
120
出力
日付 商品 価格 Fill
22/01/2012 食品

21/02/2012 食品
120
12/05/2012 食品 120 120
15/06/2012
食品
120
120
10/04/2012
文房具
100
100
メモ : Optional パラメーターはスキップ可能で、初期設定値が自動で適用されます。例: fill(`価格`, 無効) は fill(`価格`, 無効, -1, +10、-10) と同じ動作になります。



Lag

lag ( col1 , rowsbefore )

指定した行数だけ現在の行より前の値を、列内のウィンドウから取得します。

パラメーター
名前
説明

col1

Text

データ元となる列を指定します。必須項目で、文字列型の列が指定可能です。

rowsbefore

番号

現在の行より前にある行数を指定します。

関数
グループ化する単位
lag(`価格` , 1)
商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 ラグ
21/02/2012 食料品 120

12/05/2012 食料品 100 120
15/06/2012 食料品 110 100
22/01/2012
文房具
200

10/04/2012
文房具
100
200



Lead

lead ( col1 , rowsafter )

指定した行数だけ、現在の行より後の行にある値を列のウィンドウから取得します。

パラメーター
名前
説明

col1

Text

データ元となる列を指定します。必須項目で、文字列型の列を指定できます。

rowsafter

番号

現在の行より後の行数を指定します。

関数
並べ替え基準
グループ化基準
lead(`価格` , 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食品 120
12/05/2012
食品
100
15/06/2012
食品
110
出力
日付 商品 価格 リード
21/02/2012 食料品 120
100
12/05/2012 食料品 100 110
15/06/2012 食料品 110

22/01/2012
文房具
200
100
10/04/2012
文房具
100


ランク

rank ()

指定した並べ替えやグループ条件に基づいて、ウィンドウ内の行の順位を返します。同じ順位となる値が存在する場合、次の順位番号はその分スキップされます。


関数
並べ替え対象
グループ化対象
rank()
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
10/05/2012 文房具 200
21/02/2012 食料品 120
21/02/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 ランク
21/02/2012 食品 120
1
21/02/2012 食品 100
1
15/06/2012 食品 110 3
10/04/2012
文房具
100
1
10/05/2012
文房具
200
2


Dense Rank

dense_rank ()

ウィンドウ内の行を並べ替えやグループ条件に基づいて密な順位を返します。同順位がある場合でも、順位はスキップされません。


関数
並べ替え対象
グループ化対象
dense_rank()
日付 商品
入力
日付 商品 価格
2012/10/04 文房具 100
2012/10/05 文房具 200
2012/02/21 食料品 120
2012/02/21
食料品
100
2012/06/15
食料品
110
出力
日付 商品 価格 Dense Rank
21/02/2012 食料品 120
1
21/02/2012 食料品 100
1
15/06/2012 食料品 110 2
10/04/2012
文房具
100
1
10/05/2012
文房具
200
2


累積分布

cumulative_distribution ()

ウィンドウ内の行に対して累積分布値を返します。


関数
並べ替え基準
グループ化基準
cumulative_distribution()
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
110
出力
日付 商品 価格 累積分布
21/02/2012 食料品 120
+10、-10。333333333333333
12/05/2012 食料品 100
+10、-10。666666666666667
15/06/2012 食料品 110 1
22/01/2012
文房具
200
+10、-10。5
10/04/2012
文房具
100
1
関連項目