GROUP BY での ROLLUP と CUBE
GROUPING の戻り値
1 ( )
1 ( )
0 ( )
0 ( )

GROUP BY 句の拡張機能

GROUP BY での ROLLUP CUBE

プレフィクスに関する一般的なグループ化を簡単に指定するために、2 つの重 要な構文簡略化パターンが用意されています。1 つ目のパターンは ROLLUP2 つ目のパターンは CUBE と呼ばれます。

GROUP BY ROLLUP

ROLLUP 演算子には、引数として適用するグループ化の式を、次の構文の中 で順序リストで指定します。

SELECT [ GROUPING (column-name)]

GROUP BY [ expression [, ]

ROLLUP ( expression [, ] ) ]

GROUPING は、カラム名をパラメータとして受け取り、4-1に示すように ブール値を返します。

4-1: ROLLUP 演算子が指定された GROUPING によって返される値

結果値の種類

ROLLUP 演算子によって作成された NULL

ローが小計であることを示す NULL

ROLLUP 演算子によって作成された以外の NULL

格納されていた NULL

ROLLUP は、まずGROUP BY 句に指定された標準的な集合関数値を計算します。 次に、ROLLUP はグループ化を行うカラムのリストを右から左に移動し、より高 いレベルの小計を連続して作成します。最後に総計が作成されます。グループ化 するカラムの数がn 個の場合、ROLLUP n+1 レベルの小計を作成します。

SQL 構文の例

定義されるセット

GROUP BY ROLLUP (A, B, C);

(A, B, C)

 

(A, B)

 

(A)

 

( )

 

 

ROLLUP と小計ロー ROLLUP は、GROUP BY のクエリ・セットに対して UNION を行うのと同じ ことです。次の 2 つのクエリの結果セットは等しくなります。GROUP BY (A,

B)の結果セットは、A B に定数が含まれているすべてのローについての小 計から成ります。UNION を可能にするために、カラム C には NULL が割り当 てられます。

48

Sybase IQ

Page 64
Image 64
Sybase 12.7 manual Group By での Rollup と Cube, Group By Rollup, Sybase IQ