Sybase 12.7 Home Theater System User Manual


 
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 [,
] ) ]
GROUPING は、カラム名をパラメータとして受け取り、4-1 に示すように
ブール値を返します。
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)
( )