トップページに戻る
次のmodel句のサンプルへ
model句01 HelloWorld
SQL
select ArrValue,soeji
from (select 'abcdefghijklmn' as ArrValue,1 as soeji from dual)
model
dimension by (soeji)
measures(ArrValue)
rules(ArrValue[1] = 'Hello World');
ArrValue soeji
----------- -----
Hello World 1
select ArrValue,soeji
from (select 'abcdefghijklmn' as ArrValue,1 as soeji from dual)
model
dimension by (soeji)
measures(ArrValue)
rules(ArrValue[1] = 'Hello World',
ArrValue[2] = 'Hello Model');
ArrValue soeji
----------- -----
Hello World 1
Hello Model 2
select ArrValue,soeji
from (select 'abcdefghijklmn' as ArrValue,1 as soeji from dual)
model
dimension by (soeji)
measures(ArrValue)
rules(ArrValue[3] = 'Hello Oracle');
ArrValue soeji
-------------- -----
abcdefghijklmn 1
Hello Oracle 3
解説
Oracle10gより追加されたmodel句のサンプルを取り上げていきます。
結果セットを脳内でイメージするのは、普段のSQLでやってることですが
model句は、それに加えて、多次元配列(多次元ベクトル)も脳内でイメージするといいでしょう。
どんな時にmodel句を使うかとなると、
・集計行の追加
・行列変換
・前後の行の値を使った計算
・RegExp_Replace関数の繰り返し実行
・総積を求める
・wmsys.wm_concatの代用
・count(distinct Val) over(order by SortKey)の代用
のようなSQLを作成する時ですかね。
model句に関連した情報