Sybase IQ 12.7 User Manual

Page of 212
 4 章    OLAP の使用
パフォーマンス&チューニング・ガイド
89
Sybase IQ
 の制限事項
Sybase IQ で SQL OLAP 関数を使用するときの制限事項を次に示します。
ウィンドウ・フレーム定義の中でユーザ定義関数を使用することはできま
せん。
ウィンドウ・フレーム定義で使用する定数は符号なし数値でなければな
らず、最大値
 BIG INT 2
63-1
 を超えてはなりません。
ウィンドウ集合関数と
 RANK 関数は、DELETE および UPDATE 文では使
用できません。
ウィンドウ集合関数と
 RANK 関数は、サブクエリ内では使用できません。
CUME_DIST は、現時点ではサポートされていません。
グループ化セットは、現時点ではサポートされていません。
相関関数と直線回帰関数は、現時点ではサポートされていません。
その他の
 OLAP の例
この項では、
OLAP 関数を使用したその他の例を紹介します。
ウィンドウの開始ポイントと終了ポイントは、中間の結果ローが処理されると
きに変化する可能性があります。たとえば、累積和を計算する場合には、ウィ
ンドウの開始ポイントは各パーティションの最初のローに固定されますが、終
了ポイントは現在のローを含めるためにパーティション内のローを移動して
いきます。詳細については、
 を参照してください。
また、ウィンドウの開始ポイントと終了ポイントの両方が可変だが、パーティ
ション全体のローの数は一定であるという例も考えられます。このようなウィ
ンドウを使用すると移動平均を計算するクエリを作成でき、たとえば
 3 日間の
株価の移動平均を返す
 SQL クエリを作成できます。
例:
 クエリ内でのウィンドウ関数
次のクエリは、
2005 年の 7 月と 8 月に出荷された全製品と、出荷日別の累積
出荷数を一覧にして示します。
SELECT p.id, p.description, s.quantity, s.ship_date,
SUM(s.quantity) OVER (PARTITION BY prod_id ORDER BY
s.ship_date rows between unbounded preceding and
current row) 
FROM alt_sales_order_items s JOIN product p on (s.prod_id =
p.id) WHERE s.ship_date BETWEEN '2001-05-01' and
'2001-08-31' AND  s.quantity > 40 
ORDER BY p.id;