Sybase IQ 12.7 사용자 설명서

다운로드
페이지 212
GROUP BY 句の拡張機能 
48
 
Sybase IQ
GROUP BY での ROLLUP  CUBE
プレフィクスに関する一般的なグループ化を簡単に指定するために、
2 つの重
要な構文簡略化パターンが用意されています。
1 つ目のパターンは ROLLUP、
2 つ目のパターンは CUBE と呼ばれます。
GROUP BY ROLLUP
ROLLUP 演算子には、引数として適用するグループ化の式を、次の構文の中
で順序リストで指定します。
SELECT 
 [ GROUPING (column-name
 ] 
GROUP BY [ expression [, 
 ]
ROLLUP ( expression [, 
 ] ) ] 
 に示すように
ブール値を返します。
 4-1: ROLLUP 演算子が指定された GROUPING によって返される値
ROLLUP は、まず GROUP BY 句に指定された標準的な集合関数値を計算します。
次に、
ROLLUP はグループ化を行うカラムのリストを右から左に移動し、より高
いレベルの小計を連続して作成します。最後に総計が作成されます。グループ化
するカラムの数が
 n 個の場合、ROLLUP は n+1 レベルの小計を作成します。
ROLLUP と小計ロー
ROLLUP は、GROUP BY のクエリ・セットに対して UNION を行うのと同じ
ことです。次の
 2 つのクエリの結果セットは等しくなります。GROUP BY (A,
B) の結果セットは、A と B に定数が含まれているすべてのローについての小
計から成ります。
UNION を可能にするために、カラム C には NULL が割り当
てられます。
結果値の種類
GROUPING の戻り値
ROLLUP 演算子によって作成された NULL
1 ( 真 )
ローが小計であることを示す
 NULL
1 ( 真 )
ROLLUP 演算子によって作成された以外の NULL
0 ( 偽 )
格納されていた
 NULL
0 ( 偽 )
SQL 構文の例
定義されるセット
GROUP BY ROLLUP (A, B, C);
(A, B, C)
(A, B)
(A)
( )