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

前
 
次
 

LEAD

LEADファンクションは、ディメンションの現行値より後の指定されたオフセットの位置にある、ディメンション化された変数または式の値を返します。通常、将来の期間の値を取得するためにLEADファンクションを使用します。

戻り値

variable引数のデータ型、または時間ディメンションに定義されている最後の期間を超えて値を取得しようとした場合はNA

構文

LEAD(variablen, [time-dimension], [[STATUS|NOSTATUS|limit-clause] )

パラメータ

variable

dimensionによってディメンション化される変数または式。

n

後ろに相対位置変更するオフセット(つまり、ディメンション値の数)。LEADはこの値を使用して、変数の値を取得するためにLEADがディメンションで進むべき値の数を決定します。異なるディメンション・ステータスを指定するためにSTATUSキーワードまたはlimit-clause引数を使用していないかぎり、LEADはこの値をカウントするためにデフォルト・ステータスを使用します。

通常、nは、現行期間より後の期間(ディメンション値)の数を示す正のINTEGERです。nに負数の値を指定した場合、現行期間より前の期間の数を示します。つまり、nに負数の値を使用すると、LEADはLAGファンクションになります。


注意:

モデルでLEADを使用する場合は、Oracle OLAPがモデルを解決する際に連立ブロックが使用されないよう、「一方向のディメンション依存の保証」を参照して、nの値をコーディングする方法を確認してください。

dimension

後ろへの相対位置変更が発生するディメンション。任意のディメンションを指定できますが、通常は、1つのレベル(月レベル、年レベルなど)に制限されているTEXT型の階層型時間ディメンション、またはDAY、WEEK、MONTH、QUARTER、YEARのいずれかの型のディメンションです。

variableにDAY、WEEK、MONTH、QUARTERまたはYEAR型のディメンションがあり、LEADでそのディメンションを使用する場合、dimension引数は省略可能です。

STATUS

LEADが後ろへの相対位置変更を計算する際に、現行のステータス・リスト(つまり現在ステータスにあり、現行のステータスの順序に並んでいるディメンション値のみ)を使用することを指定します。

NOSTATUS

LEADが後ろへの相対位置変更を計算する際に、デフォルト・ステータス(つまり元の順序に並んでいるすべてのディメンション値のリスト)を使用することを指定します。

limit-clause

LEADが後ろへの相対位置変更を計算する際に、limit-clauseによって制限されるデフォルト・ステータスを使用することを指定します。

limit-clauseの構文は、各種LIMITコマンドにおけるlimit-clause引数の構文(つまり、LIMITコマンドの「TO」などのlimit-type引数の後の構文)と同じです。これらの引数の構文については、LIMITコマンド(値を使用)LIMITコマンド(LEVELRELを使用)LIMIT(親リレーションを使用)LIMITコマンド(関連ディメンションを使用)LIMITコマンド(NOCONVERTを使用)およびLIMITコマンド(POSLISTを使用)を参照してください。

LAGが前への相対位置変更を計算する際に、limit-clauseによって制限される現行のステータスを使用することを指定するには、limit-clauseにLIMITファンクションを指定します。

例8-6 LEADの使用方法

TEXT型の3つのディメンション(productdistrictおよびtime)によってディメンション化されるsales変数があるとします。timeディメンションは次の値を持つ階層ディメンションです。

1999
2000
Jan1999
Feb1999
...
Dec1999
Jan2000
Feb2000
...
Dec2000

さらに、timeディメンションのレベルの名前(MonthおよびYear)を含むtimelevelsという名前のディメンション、およびtimeによってディメンション化されてtimelevelsの値を持つtimelevelrelという名前のリレーションがあります(つまり、timelevelrelの関連ディメンションはtimelevelsです)。timelevelrelのレポートによって、次の関係が示されます。

TIME           TIMELEVELREL
-------------- ------------
1999           Year
2000           Year
Jan1999        Month
Feb1999        Month
...            ...
Dec1999        Month
Jan2000        Month
Feb2000        Month
...            ...
Dec2000        Month

1999年の最初の2か月間のダラスにおけるラケットの売上を、2000年の対応する月と比較するとします。LEADファンクションを使用して、2000年の値を1999年の値とともに同じレポートに生成します。次の文

LIMIT product TO 'Racquets'
LIMIT district TO 'Dallas'
LIMIT time TO 'JAN1999' 'FEB1999'
REPORT DOWN time sales HEADING 'Following Year' LEAD(sales, 12, time, time LEVELREL timelevelrel)

によって、次のレポートが生成されます。

DISTRICT: DALLAS
               -------PRODUCT-------
               ------RACQUETS-------
TIME           SALES      Following Year
-------------- ---------- ---------------------
Jan2000        118,686.75 125,879.86
Feb2000        142,305.99 150,833.64