OLAP の規則と制限
88 Sybase IQ
参照
『Sybase IQ リファレンス・マニュアル』の「第 5 章 SQL 関数」の「BIT_LENGTH
関数 [ 文字列 ]」、「EXP 関数 [ 数値 ]」、「FLOOR 関数 [ 数値 ]」、「POWER 関数
[ 数値 ]」、「SQRT 関数 [ 数値 ]」、「WIDTH_BUCKET 関数 [ 数値 ]」を参照して
ください。
OLAP の規則と制限
OLAP 関数を使用できる
場合
SQL クエリ内では、次の条件下で OLAP 関数を使用できます。
• SELECT リストの中
• 式の中
• スカラ関数の引数として
• 最後の ORDER BY 句の中 ( クエリ内のどこかで定義されている OLAP 関
数のエイリアスまたは位置参照を使用 )
OLAP 関数を使用でき
ない場合
OLAP 関数は、次の条件下では使用できません。
• サブクエリの中
• WHERE 句の検索条件の中
• SUM ( 集合 ) 関数の引数としてたとえば次の式は無効です。
SUM(RANK() OVER(ORDER BY dollars))
• ウィンドウ集合を、他の集合に対する引数として使用することはできませ
ん ( ただし、内側の集合がビューまたは抽出テーブル内で生成されたもの
である場合は例外です )。ランク付け関数についても同じことが言えます。
• ウィンドウ集合関数と RANK 関数は、HAVING 句の中では使用できません。
• ウィンドウ集合関数に DISTINCT を指定することはできません。
• ウィンドウ関数を他のウィンドウ関数の内部にネストすることはできま
せん。
• 逆分散統計関数は、OVER 句ではサポートされていません。
• ウィンドウ定義句では外部参照を使用できません。
•OLAP 関数内での相関参照は認められていますが、相関があるカラムのエ
イリアスは認められていません。
OLAP 関数から参照するカラムは、その OLAP 関数と GROUP BY 句が含まれ
ている同じクエリ・ブロック内のグループ化カラムまたは集合関数でなければ
なりません。OLAP の処理は、グループ化操作と集合操作の後、最後の ORDER
BY 句が適用される前に行われます。そのため、中間の結果セットから OLAP
式を導出することも可能です。クエリ・ブロック内に GROUP BY 句がない場
合、OLAP 関数は select リスト内の他のカラムを参照することができます。