ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

GROUPINGIDコマンド

GROUPINGIDコマンドは、事前に定義されたオブジェクトに階層ディメンションの値に対応するグルーピングIDを移入し、さらに$GID_DEPTHシステム・プロパティを作成して移入するコマンドです。

グルーピングIDは、階層ディメンションのレベルに対応する数値です。階層の最下位レベルのグルーピングIDは0(ゼロ)です。特に、階層ディメンションの異なるレベルの値を識別する場合に、グルーピングIDは便利です。階層の同じレベルのディメンション値は、グルーピングIDの値が同じです。特定レベルのディメンション値を選択する場合、groupingid = nの単一条件で目的の値を識別できるため、グルーピングIDを使用すると簡単です。

通常、OLAP_TABLEファンクションを使用してSQLでアナリティック・ワークスペース・データにアクセスする場合に、GROUPINGID文を使用します。


関連項目:

詳細は「gidrelリレーション」を参照してください。またグルーピングIDの詳細は、『Oracle Database SQL言語リファレンス』のGROUPING_IDファンクションに関する項を参照してください。

構文

GROUPINGID [parent-relation] INTO destination-object -

   {USING level-relation} [INHIERARCHY {inh-variable | inh-valueset}] [LEVELORDER lo-valueset] -

[ROLLUP | GROUPSET]

ここで、destination-objectは、次のいずれかです。

grouping-relation
grouping-variable
grouping-surrogate

パラメータ

parent-relation

階層ディメンションのセルフ・リレーション。このセルフ・リレーションは、階層ディメンションによってディメンション化されます。セルフ・リレーションの値は、階層ディメンションの各値の親です。GROUPINGIDコマンドを使用してサロゲートを移入する際、GROUPINGIDコマンドにLEVELORDER句を指定する場合にかぎりparent-relation引数はオプションです。

grouping-relation

事前に定義されたリレーションの名前。grouping-relationのディメンションの1つは、階層ディメンションである必要があります。GROUPINGIDコマンドが実行されると、grouping-relationの値が計算されて移入されます。リレーションを宛先オブジェクトとして指定すると、Oracle OLAPでは、リレーションの移入時に、そのリレーションに対する$GID_DEPTHプロパティの作成および設定が自動的に行われます。

grouping-variable

事前に定義された数値変数の名前。grouping-variableのディメンションの1つは、階層ディメンションである必要があります。grouping-variableのデータ型は、NUMBERなどの数値型にできます。GROUPINGIDコマンドが実行されると、grouping-variableの値が計算されて移入されます。変数の定義については、DEFINE VARIABLEコマンドを参照してください。

grouping-surrogate

階層ディメンションの事前定義済のサロゲートの名前。GROUPINGIDコマンドが実行されると、grouping-surrogateの値が計算され移入されます。サロゲートの定義については、DEFINE SURROGATEコマンドを参照してください。

USING

グルーピングIDを作成する際に階層ディメンションのこの値のレベルを検討することを指定します。

level-relation

階層ディメンションによってディメンション化されるリレーション。階層ディメンションの値ごとに、リレーションにはディメンションの値に対するレベルの名前の値があります。

INHIERARCHY

グルーピングIDを作成する際に階層ディメンションの値の一部のみを検討することを指定します。


注意:

ROLLUPまたはGROUPSETを指定する場合は、INHIERARCHY句を指定することはできません。

inh-variable

階層ディメンションによってディメンション化されるか、または複数階層の階層ディメンションの場合には階層の名前であるディメンションによってディメンション化されるBOOLEAN変数。ディメンション値が階層にある場合の変数の値はTRUEであり、ない場合はFALSEです。

inh-valueset

グルーピングIDを作成する際に検討される階層ディメンションの値を識別する値を持つ値セット・オブジェクトの名前。値セットに含まれない値は無視されます。

LEVELORDER

グルーピングIDを作成する際のレベルのトップダウン順序を指定します。

lo-valueset

グルーピングIDを作成する際に使用されるレベルの名前の値を持つ値セット・オブジェクトの名前。値セット・オブジェクトの値の順序によって、割り当てられるグルーピングIDが決定されます。

ROLLUP

SQL SELECT文にROLLUPを指定した場合にSQLが行うのと同じ方法で、Oracle OLAPでグルーピングIDが作成されるように指定します。


関連項目:

『Oracle Database SQL言語リファレンス』のROLLUP CUBE句に関する説明

ROLLUPキーワードは、宛先オブジェクトがリレーションである場合にのみ有効です。このキーワードを指定すると、$GID_TYPEおよび$GID_LISTプロパティ。

GROUPSET

SQL SELECT文にGROUPING SETを指定した場合にSQLが行うのと同じ方法で、Oracle OLAPでグルーピングIDが作成されるように指定します。


関連項目:

詳細は、『Oracle Database SQL言語リファレンス』のGROUPING SETS句に関する説明

GROUPSETキーワードは、宛先オブジェクトがリレーションである場合にのみ有効です。このキーワードを指定すると、Oracle OLAPでは、グルーピングIDのリレーションに対して$GID_TYPEおよび$GID_LISTという2つのプロパティの作成と移入が行われます。

例9-145 リレーションにグルーピングIDを移入するGROUPINGIDコマンドの使用方法

アナリティック・ワークスペースに次のオブジェクトが含まれているとします。

DEFINE GEOG DIMENSION TEXT
LD A dimension with two hierarchies for geography
 
DEFINE geog_hierlist DIMENSION TEXT
LD List of Hierarchies for geog dimension
 
DEFINE GEOG_INHIER VALUESET GEOG <GEOG_HIERLIST>
LD A valueset of geog that are just the values in each hierarchy
 
DEFINE GEOG_PARENTREL RELATION GEOG <GEOG GEOG_HIERLIST>
LD Self-relation for geog showing parents of each value
 
DEFINE GEOG_INHIER VALUESET GEOG <GEOG_HIERLIST>
LD A valueset of geog that are just the values in each hierarchy
 
DEFINE GEOG_LEVELREL RELATION GEOG_LEVELLIST <GEOG GEOG_HIERLIST>
LD Level of each dimension member for geog

これらのオブジェクトが、次のレポートに表示されている値を持っているとします。

REPORT geog_hierlist
 
GEOG_HIERLIST
--------------
Political_Geog
Sales_Geog
 
REPORT DOWN geog W 20 geog_parentrel
 
               -------------GEOG_PARENTREL--------------
               --------------GEOG_HIERLIST--------------
GEOG              Political_Geog         Sales_Geog
-------------- -------------------- --------------------
Boston         MA                   MA
Springfield    MA                   MA
Hartford       CT                   CT
Mansfield      CT                   CT
Montreal       Quebec               Quebec
Walla Walla    WA                   WA
Portland       WA                   WA
Oakland        CA                   CA
San Diego      CA                   CA
MA             USA                  East
CT             USA                  East
WA             USA                  West
CA             USA                  West
Quebec         Canada               East
East           NA                   All Regions
West           NA                   All Regions
All Regions    NA                   NA
USA            All Countries        NA
Canada         All Countries        NA
All Countries  NA                   NA
 
->REPORT W 20 geog_inhier
 
GEOG_HIERLIST      GEOG_INHIER
-------------- --------------------
Political_Geog Boston
               Springfield
               Hartford
               Mansfield
               Montreal
               Walla Walla
               Portland
               Oakland
               San Diego
               MA
               CT
               WA
               CA
               Quebec
               USA
               Canada
               All Countries
Sales_Geog     Boston
               Springfield
               Hartford
               Mansfield
               Montreal
               Walla Walla
               Portland
               Oakland
               San Diego
               MA
               CT
               WA
               CA
               Quebec
               East
               West
               All Regions
 
->REPORT DOWN geog W 20 geog_levelrel
 
               --------------GEOG_LEVELREL--------------
               --------------GEOG_HIERLIST--------------
GEOG              Political_Geog         Sales_Geog
-------------- -------------------- --------------------
Boston         City                 City
Springfield    City                 City
Hartford       City                 City
Mansfield      City                 City
Montreal       City                 City
Walla Walla    City                 City
Portland       City                 City
Oakland        City                 City
San Diego      City                 City
MA             State-Prov           State-Prov
CT             State-Prov           State-Prov
WA             State-Prov           State-Prov
CA             State-Prov           State-Prov
Quebec         State-Prov           State-Prov
East           NA                   Region
West           NA                   Region
All Regions    NA                   All Regions
USA            Country              NA
Canada         Country              NA
All Countries  All Countries        NA
 

geogの値に対するグルーピングIDを作成するには、まずGIDディメンションを次のように定義し、グルーピングIDに使用するのに十分な個数の値をそのディメンションに移入します。

DEFINE GID_DIMENSION DIMENSION NUMBER (16,0)

次に、グルーピングIDを保持するリレーションを定義します。

DEFINE GEOG_GIDREL RELATION GID_DIMENSION <GEOG GEOG_HIERLIST>

ここで、GROUPINGIDコマンドを実行し、geog_gidrel relationを移入します。

GROUPINGID geog_parentrel INTO geog_gidrel USING geog_levelrel -
       INHIERARCHY geog_inhier

geog_gidrelのレポートに、リレーションが移入されていることが表示されます。

REPORT down geog w 20 geog_gidrel
 
               ---------------GEOG_GIDREL---------------
               --------------GEOG_HIERLIST--------------
GEOG              Political_Geog         Sales_Geog
-------------- -------------------- --------------------
Boston         0                    0
Springfield    0                    0
Hartford       0                    0
Mansfield      0                    0
Montreal       0                    0
Walla Walla    0                    0
Portland       0                    0
Oakland        0                    0
San Diego      0                    0
MA             1                    1
CT             1                    1
WA             1                    1
CA             1                    1
Quebec         1                    1
East           NA                   3
West           NA                   3
All Regions    NA                   7
USA            3                    NA
Canada         3                    NA
All Countries  7                    NA
 

geog_gidrelのFULLDSCを実行すると、$GID_DEPTHプロパティが作成され、geog_gidrelに移入されたことが確認できます。

DEFINE GEOG_GIDREL RELATION GID_DIMENSION <GEOG GEOG_HIERLIST>
PROPERTY '$GID_DEPTH' 4

例9-146 変数にグルーピングIDを移入するGROUPINGIDの使用方法

アナリティック・ワークスペースに次のオブジェクトがあるとします。

DEFINE geography DIMENSION TEXT WIDTH 12
LD Geography Dimension Values
DEFINE geography.parent RELATION geography <geography>
LD Child-parent relation for geography
DEFINE geography.hierarchyid DIMENSION INTEGER
LD Dimension whose values are ids for hierarchies in geography

地理のStandard階層にグルーピングID変数を作成するには、グルーピングIDを生成する階層にある値のみの親子関係を定義し、グルーピングIDを保持する変数を定義します。これらの定義の例は、次のとおりです。

DEFINE geog.gid INTEGER VARIABLE <geography>
DEFINE geography.newparent RELATION geography <geography>

この後、次のような文を使用して変数を移入します。

" Populate the child-parent relation for hierarchy 1
geography.newparent = geography.parent(geography.hierarchyid 1)
" Populate the grouping id variables
GROUPINGID geography.newparent INTO geog.gid

このコードによって作成される新規オブジェクトに関するレポート(geography.newparentおよびgeog.gid)は、次のとおりです。

REPORT geography.newparent

GEOGRAPHY          GEOGRAPHY.NEWPARENT
---------------- ----------------
World            NA
Americas         World
Canada           Americas
Toronto          Canada
Montreal         Canada
Ottawa           Canada
Vancouver        Canada
Edmonton         Canada
Calgary          Canada
Usa              Americas
Boston           Usa
Losangeles       Usa
Dallas           Usa
Denver           Usa
Newyork          Usa
Chicago          Usa
Seattle          Usa
Mexico           Americas
...              ...
Japan            Asia
Tokyo            Japan
Osaka            Japan
Kyoto            Japan
China            Asia
Beijing          China
Shanghai         China
...              ...
India            Asia
Ireland          Europe
Taiwan           Asia
Thailand         Asia

REPORT geog.gid
GEOGRAPHY            GEOG.GID
---------------- ----------------
World                           7
Americas                        3
Canada                          1
Toronto                         0
Montreal                        0
Ottawa                          0
Vancouver                       0
Edmonton                        0
Calgary                         0
Usa                             1
Boston                          0
Losangeles                      0
Dallas                          0
Denver                          0
Newyork                         0
Chicago                         0
Seattle                         0
Mexico                          1
...                             ...
Japan                           1
Tokyo                           0
Osaka                           0
Kyoto                           0
China                           1
Beijing                         0
Shanghai                        0
...                             ...
India                           1
Ireland                         1
Taiwan                          1
Thailand                        1