AGGMAP ADDまたはREMOVEモデル・コマンドは、以前に定義された集計仕様(AGGMAP型のaggmapオブジェクト)に対して、以前に定義されたモデルを追加または削除します。モデルは集計仕様内で使用され、非階層ディメンション(明細項目など)でデータを集計しますが、非階層ディメンションには親リレーションがないため、RELATION文では集計できません。詳細はMODEL(集計内)を参照してください。
注意: AGGMAP ADD MODELおよびAGGMAP REMOVE MODEL文を使用してもaggmapオブジェクトにモデルを一時的に追加できますが、通常は、この操作を実行する次のようなMAINTAIN ADD SESSION文を使用します。MAINTAIN dimension ADD SESSION member = model APPLY TO AGGMAP aggmap MAINTAIN ADD SESSION文を使用すると、あるセッションで計算されたメンバーおよびその定義のいずれも次のセッションには維持されず、どちらも作成されたセッションが終了すると削除されます。 |
パラメータ
モデルを、aggmapオブジェクトに一時的に追加します。モデルは、セッションの期間中のみaggmapにアタッチされます。アナリティック・ワークスペースが更新およびコミットされた場合でも、セッションが閉じるとモデルはaggmapから廃棄されます。
モデルを、aggmapから削除します。
指定されたaggmapに追加するモデル・オブジェクトの名前。
以前に定義された、AGGMAP型のaggmapオブジェクトの名前。
例
例9-25 aggmapへのモデルの一時的な追加
例として、次の定義を持つletter.aggmap
という名前のaggmapオブジェクトがあるとします。
DEFINE LETTER.AGGMAP AGGMAP AGGMAP RELATION letter.letter PRECOMPUTE ('AA') END
さらに、ディメンション値AAB
およびABA
によりディメンション化されるセルの、サマリー変数データを作成するとします。ただし、このデータをアナリティック・ワークスペースに永続的に格納することはしません。セッション中に、データを参照するだけです。
この種類の集計を実行する手順は、次のとおりです。
カスタム集計のディメンション値を作成します。このディメンション値は、ディメンション値AAB
およびABA
の親になります。次の文では、letter
ディメンションに'BB
'を追加します。
MAINTAIN letter ADD 'BB'
AGGREGATION
ファンクションを含むMODEL
オブジェクトを作成し、このオブジェクトによって子ディメンション値が新しいディメンション値に関連付けられます。次のモデルは、AAB
およびABA
の親としてBB
を識別します。親ディメンション値(この場合はBB)を、親リレーション(letter.letter
)の親としてあらかじめ定義することはできません。
DEFINE LETTER.MODEL MODEL MODEL DIMENSION letter BB=AGGREGATION('AAB' 'ABA')
AGGMAP ADD
文を実行して、モデルを既存のAGGMAP
オブジェクトに追加します。
AGGMAP ADD letter.model TO letter.aggmap
ここで、aggmapは次のようになります。
DEFINE LETTER.AGGMAP AGGMAP AGGMAP RELATION letter.letter PRECOMPUTE ('AA') END AGGMAP ADD letter.model
モデルは、次の式のようにAGGREGATE
ファンクションによってのみ実行され、AGGREGATE
コマンドからは無視されます。
REPORT AGGREGATE(units USING letter.aggmap)
セッション中にaggmapからモデルを削除する場合、AGGMAP REMOVE
文を使用します。
使用しているaggmapが、アナリティック・ワークスペースで永続オブジェクトにならないようにするには、セッションを閉じる前に次の文を発行して、手順1で追加したディメンション値を削除してください。
MAINTAIN letter DELETE 'BB'
セッションが終了すると、Oracle OLAPはAGGMAP ADD文を使用して追加されたモデルを自動的に削除します。AGGMAP REMOVE文を明示的に発行する必要はありません。