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

前
 
次
 

$AGGMAP

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

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

構文

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

  • プロパティを追加する場合は、次の文を発行します。

    PROPERTY '$AGGMAP' agggmap-name

  • プロパティを削除する場合は、次の文を発行します。

    PROPERTY DELETE '$AGGMAP'

パラメータ

aggmap-name

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

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


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

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

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の値8,000は再計算されていません。)

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

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

例4-3「$AGGREGATE_FROMプロパティの使用」では、例9-13「集計仕様における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