IBM SPSS Modeler(旧称Clementine)でオフセット関数のプッシュバック [データサイエンス、統計モデル]
ずっと、オフセット関数を使う場合、SQLプッシュバックってできないものと思っていました。
が、ウィンドウ(window)関数を使うことで同様の処理が出来ることがわかりました。
という書き方です。
IBM SPSS Modelerだと、オフセット関数を使う場合、何かの変数でソートをします。
その後で
@OFFSET(FIELD, EXPR)
という書き方をします。
たとえば、IDでソートをして変数 hoge の1つ前を持ってくる場合、
@OFFSET(hoge, 1)
と書きます。
これをウィンドウ(window)関数で書いた場合、
select
ID,
hoge,
lag( hoge, 2 )
over( order by ID ) as pre
from テーブル名;
と書けば、データベース(Netezza)側で処理させるので、ずっと高速に処理をすることができます。
が、ウィンドウ(window)関数を使うことで同様の処理が出来ることがわかりました。
LAG( 項目 ,[ 行数 ,デフォルト ] )
OVER( [ PRTITION BY 項目1,
[項目2,・・] ]
ORDER BY 項目1,
[項目2,・・] )
という書き方です。
IBM SPSS Modelerだと、オフセット関数を使う場合、何かの変数でソートをします。
その後で
@OFFSET(FIELD, EXPR)
という書き方をします。
たとえば、IDでソートをして変数 hoge の1つ前を持ってくる場合、
@OFFSET(hoge, 1)
と書きます。
これをウィンドウ(window)関数で書いた場合、
select
ID,
hoge,
lag( hoge, 2 )
over( order by ID ) as pre
from テーブル名;
と書けば、データベース(Netezza)側で処理させるので、ずっと高速に処理をすることができます。
コメント 0