Sybase 12.7 Home Theater System User Manual


 
4 OLAP の使用
パフォーマンス&チューニング・ガイド 89
Sybase IQ
の制限事項
Sybase IQ SQL OLAP 関数を使用するときの制限事項を次に示します。
ウィンドウ・フレーム定義の中でユーザ定義関数を使用することはできま
せん。
ウィンドウ・フレーム定義で使用する定数は符号なし数値でなければな
らず、最大値 BIG INT 2
63-1
を超えてはなりません。
ウィンドウ集合関数と RANK 関数は、DELETE および UPDATE 文では使
用できません。
ウィンドウ集合関数と RANK 関数は、サブクエリ内では使用できません。
CUME_DIST は、現時点ではサポートされていません。
グループ化セットは、現時点ではサポートされていません。
相関関数と直線回帰関数は、現時点ではサポートされていません。
その他の OLAP の例
この項では、OLAP 関数を使用したその他の例を紹介します。
ウィンドウの開始ポイントと終了ポイントは、中間の結果ローが処理されると
きに変化する可能性があります。たとえば、累積和を計算する場合には、ウィ
ンドウの開始ポイントは各パーティションの最初のローに固定されますが、
了ポイントは現在のローを含めるためにパーティション内のローを移動して
いきます。詳細については、4-3 (66 ページ ) を参照してください。
また、ウィンドウの開始ポイントと終了ポイントの両方が可変だが、パーティ
ション全体のローの数は一定であるという例も考えられます。このようなウィ
ンドウを使用すると移動平均を計算するクエリを作成でき、たとえば 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;