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は、次のいずれかです。
パラメータ
階層ディメンションのセルフ・リレーション。このセルフ・リレーションは、階層ディメンションによってディメンション化されます。セルフ・リレーションの値は、階層ディメンションの各値の親です。GROUPINGIDコマンドを使用してサロゲートを移入する際、GROUPINGIDコマンドにLEVELORDER句を指定する場合にかぎり、parent-relation引数はオプションです。
事前に定義されたリレーションの名前。grouping-relationのディメンションの1つは、階層ディメンションである必要があります。GROUPINGIDコマンドが実行されると、grouping-relationの値が計算されて移入されます。リレーションを宛先オブジェクトとして指定すると、Oracle OLAPでは、リレーションの移入時に、そのリレーションに対する$GID_DEPTHプロパティの作成および設定が自動的に行われます。
事前に定義された数値変数の名前。grouping-variableのディメンションの1つは、階層ディメンションである必要があります。grouping-variableのデータ型は、NUMBER
などの数値型にできます。GROUPINGIDコマンドが実行されると、grouping-variableの値が計算されて移入されます。変数の定義については、DEFINE VARIABLEコマンドを参照してください。
階層ディメンションの事前定義済のサロゲートの名前。GROUPINGIDコマンドが実行されると、grouping-surrogateの値が計算され移入されます。サロゲートの定義については、DEFINE SURROGATEコマンドを参照してください。
グルーピングIDを作成する際に階層ディメンションのこの値のレベルを検討することを指定します。
階層ディメンションによってディメンション化されるリレーション。階層ディメンションの値ごとに、リレーションにはディメンションの値に対するレベルの名前の値があります。
グルーピングIDを作成する際に階層ディメンションの値の一部のみを検討することを指定します。
注意: ROLLUPまたはGROUPSETを指定する場合は、INHIERARCHY句を指定することはできません。 |
階層ディメンションによってディメンション化されるか、または複数階層の階層ディメンションの場合には階層の名前であるディメンションによってディメンション化されるBOOLEAN変数。ディメンション値が階層にある場合の変数の値はTRUE
であり、ない場合はFALSE
です。
グルーピングIDを作成する際に検討される階層ディメンションの値を識別する値を持つ値セット・オブジェクトの名前。値セットに含まれない値は無視されます。
グルーピングIDを作成する際のレベルのトップダウン順序を指定します。
グルーピングIDを作成する際に使用されるレベルの名前の値を持つ値セット・オブジェクトの名前。値セット・オブジェクトの値の順序によって、割り当てられるグルーピングIDが決定されます。
SQL SELECT
文にROLLUPを指定した場合にSQLが行うのと同じ方法で、Oracle OLAPでグルーピングIDが作成されるように指定します。
関連項目: 『Oracle Database SQL言語リファレンス』のROLLUP CUBE句に関する説明 |
ROLLUPキーワードは、宛先オブジェクトがリレーションである場合にのみ有効です。このキーワードを指定すると、$GID_TYPEおよび$GID_LISTプロパティ。
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