ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

$AGGMAP

$AGGMAPプロパティは、ディメンション化された変数にあって変数のセッション・キャッシュ(存在する場合)にはないNA値の代替値として、指定のaggmapを使用して事前計算されていないデータを自動集計するよう指定するプロパティです。$AGGMAPプロパティを変数で使用すると、その変数に含まれる事前計算されていないデータを集計するためにAGGREGATEファンクションを明示的に使用する必要がなくなります。

変数が、USING句を含まないAGGREGATEコマンドのターゲットになる場合、Oracle OLAPでは、その変数の$AGGMAPプロパティで指定されたaggmapが使用されます。

構文

次のPROPERTY文を使用して、直近に定義または検討されたオブジェクト(DEFINEコマンドおよびCONSIDERコマンドを参照)に対し、$AGGMAPプロパティの追加または削除を行います。

引数

aggmap-name

以前に定義されたaggmapオブジェクトの名前であるTEXT式。

例5-1 $AGGMAPを使用したデータの動的な集計



geogという階層ディメンションとyearという単純なディメンションがあり、これらによってディメンション化されているsalesという変数があるとします。この変数は詳細レベルのデータのみを保持しています。

ここで、2005年のConnecticutのsalesセルに対して明示的に値8000を指定するとします。このためには、次の代入文を発行します。salesに対してREPORT文が発行され、値が表示されます。

sales (geog 'Connecticut' year '2005') = 8000
REPORT sales;

               -----------SALES-----------
               -----------YEAR------------
GEOG            2004   2005   2006   2007
-------------- ------ ------ ------ ------
Toronto         1,000  1,333  1,954  1,260
Norfolk         1,131  1,867  1,843  1,767
Montreal        1,571  1,754  1,316  1,905
Quebec City     1,914  1,728  1,386  1,847
Hartford        1,870  1,943  1,085  1,335
New Haven       1,684  1,330  1,458  1,402
Springfield     1,630  1,116  1,897  1,690
Boston          1,780  1,310  1,368  1,581
Ontario            NA     NA     NA     NA
Quebec             NA     NA     NA     NA
Connecticut        NA  8,000     NA     NA
Massachusetts      NA     NA     NA     NA
Canada             NA     NA     NA     NA
USA                NA     NA     NA     NA
All Geog           NA     NA     NA     NA

今度は、salesにaggmapを定義します。このaggmap定義では、次のように、Canadaの上位レベルのデータと最上位レベル(All Geog)のデータのみをAGGREGATEコマンドで集計するように指定しています。

DEFINE MYAGGMAP AGGMAP
AGGMAP
RELATION geogParentrel PRECOMPUTE ('Quebec' 'Ontario' 'Canada' 'All Geog')
END

次の文を発行するとします。

CONSIDER sales
PROPERTY '$AGGMAP' 'Myaggmap'

$AGGMAPプロパティを使用してmyaggmapsalesのデフォルトaggmapにした結果、salesに対する簡単なREPORT文でUSAのすべてのデータを集計できるようになっています(PRECOMPUTEとして指定していない値、および以前はNA値だった値のみが計算されている点に注意してください。前の手順で明示的に代入した2005年のConnecticutの値8000は再計算されていません)。

REPORT sales

               -----------SALES-----------
               -----------YEAR------------
GEOG            2004   2005   2006   2007
-------------- ------ ------ ------ ------
Toronto         1,000  1,333  1,954  1,260
Norfolk         1,131  1,867  1,843  1,767
Montreal        1,571  1,754  1,316  1,905
Quebec City     1,914  1,728  1,386  1,847
Hartford        1,870  1,943  1,085  1,335
New Haven       1,684  1,330  1,458  1,402
Springfield     1,630  1,116  1,897  1,690
Boston          1,780  1,310  1,368  1,581
Ontario            NA     NA     NA     NA
Quebec             NA     NA     NA     NA
Connecticut     3,554  8,000  2,543  2,737
Massachusetts   3,410  2,426  3,265  3,271
Canada             NA     NA     NA     NA
USA             6,964  5,699  5,808  6,008
All Geog           NA     NA     NA     NA

AGGREGATEコマンドを使用してsalesを集計すると、salesのすべてのPRECOMPUTEセルの値が集計されます。

REPORT sales

               -----------SALES-----------
               -----------YEAR------------
GEOG            2004   2005   2006   2007
-------------- ------ ------ ------ ------
Toronto         1,000  1,333  1,954  1,260
Norfolk         1,131  1,867  1,843  1,767
Montreal        1,571  1,754  1,316  1,905
Quebec City     1,914  1,728  1,386  1,847
Hartford        1,870  1,943  1,085  1,335
New Haven       1,684  1,330  1,458  1,402
Springfield     1,630  1,116  1,897  1,690
Boston          1,780  1,310  1,368  1,581
Ontario         2,131  3,200  3,797  3,027
Quebec          3,485  3,482  2,702  3,752
Connecticut     3,554  8,000  2,543  2,737
Massachusetts   3,410  2,426  3,265  3,271
Canada          5,616  6,682  6,499  6,779
USA             6,964  5,699  5,808  6,008
All Geog       12,580 12,381 12,307 12,787

例5-2 AGGREGATEコマンドに対する$AGGMAPプロパティの影響

例5-3「$AGGREGATE_FROMプロパティの使用」では、例9-12「集計仕様におけるCACHE文の使用」に示されているAGGREGATEコマンドを次の文に簡略化する方法を説明します。

AGGREGATE sales_by_revenue USING revenue_aggmap

$AGGMAPプロパティをsales_by_revenue変数に定義すると、AGGREGATEコマンドをさらに簡略化できます。$AGGMAPプロパティをsales_by_revenue変数に定義するには、次の文を発行します。

CONSIDER sales_by_revenue
PROPERTY '$AGGMAP' 'revenue_aggmap'

これで、USING句を含まない次のAGGREGATEコマンドを発行することにより、データを集計できるようになります。

AGGREGATE sales_by_revenue