Sybase 12.7 manual Sybase IQ

Models: 12.7

1 212
Download 212 pages 60.16 Kb
Page 30
Image 30
Manual background

集約データの取得

 

year

model

color

sales

 

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

 

 

このクエリを処理するときに、Sybase IQ は最初に、指定された 3 つすべての

 

グループ化式 (yearmodelcolor) によってデータをグループ化し、次に最後

 

の式 (color) を除くすべてのグループ化式によってデータをグループ化します。

 

5 番目のローの NULL は、color カラムの ROLLUP 値、つまり、そのモデルの

 

すべての色の合計販売数を示します。343 は、1990 年のすべてのモデルと色の

 

合計販売数を表し、314 1991 年の合計販売数を表します。最後のローは、す

 

べての年のすべてのモデルとすべての色の合計販売数を表します。

 

ROLLUP 演算子には、引数としてグループ化式の順番リストを指定する必要

 

があります。他のグループを含むグループをリストするときは、先に大きい方

 

のグループをリストします ( たとえば、state をリストしてから city をリスト

 

します )

 

 

 

 

 

ROLLUP 演算子は、集合関数の SUMCOUNTAVGMINMAXSTDDEV

 

VARIANCE とともに使用できます。ただし、ROLLUP COUNT DISTINCT

 

SUM DISTINCT をサポートしていません。

 

 

CUBE の使用

次のクエリでは、人々の州 ( 地理的位置 )、性別、教育水準、所得を含む国勢調

 

査のデータを使用します。GROUP BY 句の CUBE 拡張を使用すると、census

テーブル内の国勢調査データを 1 回参照するだけで、州、性別、教育水準の国 勢調査全体の平均所得を計算し、stategendereducation の各カラムの可能な すべての組み合わせの平均所得を計算できます。たとえば、すべての州のすべ ての女性の平均所得を計算する場合や、教育水準と地理的位置を基準に国勢調 査のすべての人々の平均所得を計算する場合に、CUBE 演算子を使用します。

CUBE でグループを計算するときに、CUBE は計算されたグループのカラムに NULL 値を挿入します。各ローが表すグループの種類と、その NULL がデータ ベースに格納されている NULL なのか、CUBE が挿入した NULL なのかを区 別することは困難です。この問題を解決するのが GROUPING 関数です。指定 されたカラムが上位レベルのグループにマージされている場合、この関数は 1 を返します。

14

Sybase IQ

Page 30
Image 30
Sybase 12.7 manual Sybase IQ