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

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

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





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

通常の集計関数は、1行または複数行に対して適用され、単一の出力を返しますが、ウィンドウ関数は、行の集合(ウィンドウ)に対して適用しても、出力で全ての行をグループ化するわけではありません。結果には行が保持され、下の画像のように表示されます。




ウィンドウ関数の詳細や例については、この動画をご覧ください。




DataPrepで利用できるウィンドウ関数一覧

ローリングサム

rolling_sum ( col1 , rowsbefore , rowsafter )

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

パラメーター
名前
説明

col1

小数

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

rowsbefore

番号

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

rowsafter

番号

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

関数
行の並び替え基準
グループ化基準
rolling_sum(`価格`, 1, 1)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012 食料品 100
15/06/2012 食料品 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)
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
22/01/2012 文房具 200
21/02/2012 食料品 120
12/05/2012
食料品
100
15/06/2012
食料品
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
出力
日付 商品 価格 Row_number
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 rankingを返します。同順位の場合でも、順位がスキップされることはありません。


関数
並べ替え基準
グループ化基準
dense_rank()
日付 商品
入力
日付 商品 価格
10/04/2012 文房具 100
10/05/2012 文房具 200
21/02/2012 食料品 120
21/02/2012
食料品
100
15/06/2012
食料品
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
関連項目

Before Updated