Sybase IQ 12.7 用户手册
集約データの取得
14
Sybase IQ
このクエリを処理するときに、
Sybase IQ は最初に、指定された 3 つすべての
グループ化式
(year、model、color) によってデータをグループ化し、次に最後
の式
(color) を除くすべてのグループ化式によってデータをグループ化します。
5 番目のローの NULL は、color カラムの ROLLUP 値、つまり、そのモデルの
すべての色の合計販売数を示します。
すべての色の合計販売数を示します。
343 は、1990 年のすべてのモデルと色の
合計販売数を表し、
314 は 1991 年の合計販売数を表します。最後のローは、す
べての年のすべてのモデルとすべての色の合計販売数を表します。
ROLLUP 演算子には、引数としてグループ化式の順番リストを指定する必要
があります。他のグループを含むグループをリストするときは、先に大きい方
のグループをリストします
があります。他のグループを含むグループをリストするときは、先に大きい方
のグループをリストします
( たとえば、state をリストしてから city をリスト
します
)。
ROLLUP 演算子は、集合関数の SUM、COUNT、AVG、MIN、MAX、STDDEV、
VARIANCE とともに使用できます。ただし、ROLLUP は COUNT DISTINCT と
SUM DISTINCT をサポートしていません。
VARIANCE とともに使用できます。ただし、ROLLUP は COUNT DISTINCT と
SUM DISTINCT をサポートしていません。
CUBE の使用
次のクエリでは、人々の州
( 地理的位置 )、性別、教育水準、所得を含む国勢調
査のデータを使用します。
GROUP BY 句の CUBE 拡張を使用すると、census
テーブル内の国勢調査データを
1 回参照するだけで、州、性別、教育水準の国
勢調査全体の平均所得を計算し、
state、gender、education の各カラムの可能な
すべての組み合わせの平均所得を計算できます。たとえば、すべての州のすべ
ての女性の平均所得を計算する場合や、教育水準と地理的位置を基準に国勢調
査のすべての人々の平均所得を計算する場合に、
ての女性の平均所得を計算する場合や、教育水準と地理的位置を基準に国勢調
査のすべての人々の平均所得を計算する場合に、
CUBE 演算子を使用します。
CUBE でグループを計算するときに、CUBE は計算されたグループのカラムに
NULL 値を挿入します。各ローが表すグループの種類と、その NULL がデータ
ベースに格納されている
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