Sybase 12.7 Home Theater System User Manual


 
集約データの取得
14 Sybase IQ
このクエリを処理するときに、Sybase IQ は最初に、指定された 3 つすべての
グループ化式 (yearmodelcolor) によってデータをグループ化し、次に最後
の式 (color) を除くすべてのグループ化式によってデータをグループ化します。
5 番目のローの NULL は、color カラムの ROLLUP 値、つまり、そのモデルの
すべての色の合計販売数を示します。343 は、1990 年のすべてのモデルと色の
合計販売数を表し、314 1991 年の合計販売数を表します。最後のローは、す
べての年のすべてのモデルとすべての色の合計販売数を表します。
ROLLUP 演算子には、引数としてグループ化式の順番リストを指定する必要
があります。他のグループを含むグループをリストするときは、先に大きい方
のグループをリストします ( たとえば、state をリストしてから city をリスト
します )
ROLLUP 演算子は、集合関数の SUMCOUNTAVGMINMAXSTDDEV
VA R I A NC E とともに使用できます。ただし、ROLLUP COUNT DISTINCT
SUM DISTINCT をサポートしていません。
CUBE の使用
次のクエリでは、人々の州 ( 地理的位置 )、性別、教育水準、所得を含む国勢調
査のデータを使用します。GROUP BY 句の CUBE 拡張を使用すると、census
テーブル内の国勢調査データを 1 回参照するだけで、州、性別、教育水準の国
勢調査全体の平均所得を計算し、stategendereducation の各カラムの可能な
すべての組み合わせの平均所得を計算できます。たとえば、すべての州のすべ
ての女性の平均所得を計算する場合や、教育水準と地理的位置を基準に国勢調
査のすべての人々の平均所得を計算する場合に、CUBE 演算子を使用します。
CUBE でグループを計算するときに、CUBE は計算されたグループのカラムに
NULL 値を挿入します。各ローが表すグループの種類と、その NULL がデータ
ベースに格納されている NULL なのか、CUBE が挿入した NULL なのかを区
別することは困難です。この問題を解決するのが GROUPING 関数です。指定
されたカラムが上位レベルのグループにマージされている場合、この関数は 1
を返します。
1991 Chevrolet blue 54
1991 Chevrolet red 95
1991 Chevrolet white 49
1991 Chevrolet NULL 198
1991 Ford blue 52
1991 Ford red 55
1991 Ford white 9
1991 Ford NULL 116
1991 NULL NULL 314
NULL NULL NULL 657
year model color sales