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

戻る
戻る
 
次へ
次へ
 

TOTAL

TOTALファンクションは、式の値の合計を計算するファンクションです。

戻り値

式のデータ型。INTEGER、LONGINTまたはDECIMALになります。

構文

TOTAL(expression [CACHE] [dimension...])

引数

expression

合計する対象の式。

CACHE

内部動作が若干変更されます。このキーワードは、元のパフォーマンスが非常に遅い場合にのみ指定してください。

dimension

結果のディメンションの名前。または、expressionのディメンションの1つと結果のディメンションとする別のディメンションとの間のリレーションの名前。

デフォルトでは、TOTALは単一の値を返します。結果のディメンションを1つ以上指定した場合、TOTALは、指定されたディメンションに対して値を計算し、値の配列を返します。各ディメンションは、expressionのディメンションであるか、そのディメンションの1つと関連している必要があります。


ヒント:

式の実際のディメンションではなく、式のディメンションに関連するディメンションを指定した場合で、なおかつ2つのディメンション間に複数のリレーションがある場合、Oracle OLAPはディメンション間のデフォルトのリレーションを使用して計算を行います(デフォルトのリレーションの詳細は、RELATIONコマンドを参照)。このデフォルトのリレーションを使用しない場合は、リレーションの名前を指定して、関連付けられたディメンションを指定します。

注意

TOTALでのNA値の処理

TOTALはNASKIPオプションの影響を受けます。NASKIPがYESに設定されている場合(デフォルト)、TOTALはNA値を無視し、非NA値の合計を返します。NASKIPがNOに設定されている場合、計算に含まれる値にNAが1つでもあると、TOTALはNAを返します。計算に含まれるすべてのデータ値がNAの場合には、NASKIPの設定にかかわらず、TOTALはNAを返します。

DWMQYディメンションでの合計

expressionがDAY、WEEK、MONTH、QUARTERまたはYEAR型のディメンションによってディメンション化されている場合、それ以外のDAY、WEEK、MONTH、QUARTERまたはYEARディメンションを関連dimensionとして指定できます。Oracle OLAPでは、ディメンション間の暗黙的なリレーションを使用します。一方のDAY、WEEK、MONTH、QUARTERまたはYEARディメンションから他方のディメンションへのマッピング(週から月など)を制御するには、2つのディメンション間のリレーションを明示的に定義し、TOTALファンクションへのdimension引数としてリレーションの名前を指定します。

Oracle OLAPは、関連ディメンションの期間ごとに、ターゲット期間に終了するすべてのソース期間のデータを合計します。この方法は、どのディメンションがより上位の集計期間を保持しているかにかかわらず、適用されます。2つの時間ディメンションの期間の間でデータを集計または割り当てる方法を制御するには、TCONVERTファンクションを使用します。

TOTALファンクションの複数リレーション

関連ディメンションによって合計を中断し、式のディメンション性を変更する場合、Oracle OLAPはこの新しいディメンション性に基づく値を必要とします。そして、そのディメンションの値を保持するリレーションを選択します。

Oracle OLAPは、必要なディメンションの値を保持するリレーションが複数ある場合、最初に定義されたリレーションを使用します。関連ディメンションが必要なディメンションとなるリレーションが存在しない場合、必要なディメンションによってディメンション化されるリレーションを検索します。

たとえば、districtおよびregionの間に次のような2つのリレーションがあるとします。

DEFINE REGION.DISTRICT RELATION REGION <DISTRICT>
LD The region each district belongs to

DEFINE DISTRICT.REGION RELATION DISTRICT <REGION>
LD The primary district in each region

アナリティック・ワークスペースに前述の2つのリレーションが存在するときに次のTOTALファンクションを指定した場合、指定したディメンションの値はリレーションregion.districtに格納されているため、Oracle OLAPではデフォルトでこのリレーションが使用されます。

REPORT TOTAL(sales region)

例8-148 すべての月の売上の合計

地区ごとのすべての月のスポーツウェアの合計売上を調べるとします。TOTALファンクションを使用して、売上総額を計算します。各地区の合計を参照するには、結果のディメンションとしてdistrictを指定します。

LIMIT product TO 'Sportswear'
REPORT W 15 HEADING 'Total Sales' TOTAL(sales district)

この文によって生成される出力は、次のとおりです。

DISTRICT         Total Sales
-------------- ---------------
Boston            1,659,609.90
Atlanta           3,628,616.62
Chicago           2,296,631.81
Dallas            3,893,829.30
Denver            2,133,425.29
Seattle           1,298,215.59