TOTALファンクションは、式の値の合計を計算するファンクションです。
パラメータ
合計する対象の式。
内部動作が若干変更されます。このキーワードは、元のパフォーマンスが非常に遅い場合にのみ指定してください。
結果のディメンションの名前。または、expressionの1つのディメンションと結果のディメンションとする別のディメンションとの間のリレーションの名前。
デフォルトでは、TOTALは単一の値を返します。結果のディメンションを1つ以上指定した場合、TOTALは、指定されたディメンションに対して値を計算し、値の配列を返します。各ディメンションは、expressionのディメンションであるか、そのディメンションの1つと関連している必要があります。
ヒント: 指定したディメンションがexpressionの実際のディメンションではなくexpressionのディメンションに関連付けられたディメンションであり、かつ2つのディメンション間のリレーションが2つ以上ある場合は、ディメンション間のデフォルトのリレーションを使用して計算が行われます(デフォルトのリレーションの詳細は、 RELATIONコマンド を参照)。(デフォルトのリレーションの詳細は、RELATIONコマンドを参照してください。)Oracle OLAPでこのデフォルトのリレーションを使用しない場合は、リレーションの名前を指定して、関連付けられたディメンションを指定します。 |
使用上の注意
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では、ディメンション間の暗黙的なリレーションを使用します。1つの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-150 すべての月の売上の合計
地区ごとのすべての月のスポーツウェアの合計売上を調べるとします。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