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

前
 
次
 

LIMITファンクション

LIMITファンクションは、指定したLIMITコマンドまたは指定したディメンション・ステータス・スタックの結果として得られたディメンションまたはディメンション・サロゲート値を返すファンクションです。ディメンションとその任意のディメンション・サロゲートは、同じステータスを共有します。LIMITファンクションによって、ディメンションまたは値セットのステータスが変更されることはありません。

戻り値

戻り値は、ファンクションの使用方法とINTEGERキーワードの指定の有無によって異なります。

  • 値セットを必要とするOLAP DML文(ユーザー定義コマンドまたはユーザー定義ファンクションを含む)の引数としてLIMITファンクションを使用すると、値セットが返されます。

  • 空の値セットの場合、LIMITファンクションはその値セットとしてNULLステータスを返します。

  • それ以外の場合、LIMITファンクションにINTEGERキーワードが指定されているかどうかによって、TEXT値またはINTEGER値が返されます。TEXT値が空のステータスの場合、NAを返します。

構文

LIMITファンクションの構文は、ディメンションまたはディメンション・サロゲートの値を、指定したLIMITコマンドから取得するか、あるいは指定したディメンション・ステータス・スタックから取得するかによって異なります。

LIMITコマンドから値を取得する場合の構文

LIMIT([INTEGER] {dimension | valueset | LIMIT_function} [concat-component] limit-type -

     [limit-clause] [IFNONE label])

ディメンション・ステータス・スタックから値を取得する場合の構文

LIMIT([INTEGER] dimension  STATDEPTH stack-position] [IFNONE label])

パラメータ

dimension

この引数の詳細は、LIMITコマンドを参照してください。

valueset

この引数の詳細は、LIMITコマンドを参照してください。

LIMIT_function

別のLIMITファンクション。


注意:

このようにLIMITファンクションの中にLIMITファンクションを入れてネストする場合、最も内側にあるLIMITファンクションの最初の引数はディメンションまたは値セットである必要があります。「LIMITファンクションのネスト」も参照してください。

concat-component

この引数の詳細は、LIMITコマンドを参照してください。

limit-type

この引数の詳細は、LIMITコマンドを参照してください。

limit-clause

制限に使用する値を指定します。制限句には、いくつかの種類があり、たとえば、値(または値セット)を使用した制限の指定に使用できる制限句や、関連ディメンションを使用した制限の指定に使用できる制限句です。これらの制限句にはそれぞれ複雑な構文があります。構文が複雑なため、各種の制限句の構文を次の各項で個別に紹介します。

LIMITコマンド(値を使用)
LIMITコマンド(LEVELRELを使用)
LIMITコマンド(関連ディメンションを使用)
LIMIT(親リレーションを使用)
LIMITコマンド(NOCONVERTを使用)
LIMITコマンド(POSLISTを使用)

これらの各LIMITコマンドの構文で、limit-type引数の後に続く構文の一部がlimit-clauseです。

INTEGER

INTEGERキーワードを使用すると、デフォルトのディメンション・ステータス内の値は、名前ではなく位置番号で返されます。値セットでINTEGERを使用すると、デフォルトのディメンション・ステータス内の値は、値セットではなく位置番号で返されます。

STATDEPTH

指定したディメンションのステータス・リスト・スタックのステータス・リスト値を取得するように指定します。

stack-position

値の取得元のステータス・リスト・スタックの位置を指定するINTEGER値。値を指定する際の注意点は次のとおりです。

  • 0から1-STATDEPTH(dimension)の値を指定すると、上(現行ステータス)から下(最も古いステータス)にスタック値が取得されます。

  • 1からSTATDEPTH(dimension)の値を指定すると、スタックの下(最も古いステータス)からスタックの上(現行ステータス)にスタック値が取得されます。

ステータス・リスト・スタックの詳細は、STATDEPTHファンクションを参照してください。

使用上の注意

LIMITファンクションのネスト

次の構文を使用してLIMITファンクションをネストすると、同じディメンションに対する複数のLIMITコマンドの結果が返されます。

LIMIT (LIMIT (LIMIT (lim-exp1lim-exp2lim-exp3)

このネストされた構造を使用して、一連のLIMITコマンドのステータスが確認できます。たとえば、次のコマンドのステータスを確認するとします。

LIMIT product TO division 'Camping'
LIMIT product KEEP -
   EVERY(sales GT 50000, product)
LIMIT product KEEP FIRST 1

次の文を実行します。

REPORT LIMIT(LIMIT(LIMIT(product TO -
   division 'Camping') KEEP EVERY -
   (sales GT 50000, product))KEEP FIRST 1)

連結ディメンションのコンポーネントを使用した制限

次の文によって、連結ディメンションを、そのコンポーネントのディメンションに対する現行のステータスの1つに制限できます。

LIMIT(reg.dist.ccdim TO district)

また、次の文によって、連結ディメンションを、そのコンポーネントのディメンションの一連の値に制限できます。

LIMIT(reg.dist.ccdim TO district 'Boston' 'Chicago' 'Seattle')

多次元の結果

LIMITファンクションで多次元の式を評価すると、多次元の結果が返されます。次の例では、sales変数にproductdistrictおよびmonthという3つのディメンションがあります。

LIMIT product TO ALL
LIMIT district TO 'Boston'
LIMIT month TO 'Jan95' 'Feb95' 'Mar95'

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

DISTRICT: BOSTON
          -------------SALES--------------
          -------------MONTH--------------
PRODUCT     Jan95      Feb95      Mar95
--------- ---------- ---------- ----------
Tents      32,153.52  32,536.30  43,062.75
Canoes     66,013.92  76,083.84  91,748.16
Racquets   52,420.86  56,837.88  58,838.04
Sportswear 53,194.70  58,913.40  62,797.80
Footwear   91,406.82  86,827.32 100,199.46

生成したレポートに示されているステータスで、売上が$90,000を超えている製品のリストを取得するとします。LIMITファンクションを使用して製品売上額を月と地区の各組合せで評価し、ステータスにある月と地区でディメンション化したリストを作成します。

REPORT limit (product TO sales GT 90000)文によって生成される出力は、次のとおりです。

          ---LIMIT (PRODUCT TO SALES GT---
          -------------90000)-------------
          -------------MONTH--------------
DISTRICT    Jan95      Feb95      Mar95
--------- ---------- ---------- ----------
Boston    Footwear   NA         Canoes
                                Footwear

例8-9 多次元の結果を返す場合

この例では、BostonおよびAtlantaにおいて、1995年の最初の2か月間に売上が$50,000を超えた製品のレポートを出力します。LIMITファンクションの結果は、多次元の結果になります。

次の文

LIMIT month TO 'Jan95' 'Feb95'
LIMIT district TO 'Boston' 'Atlanta'
LIMIT product TO ALL
REPORT LIMIT (product TO sales GT 50000)

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

               --LIMIT (PRODUCT TO--
               ---SALES GT 50000)---
               --------MONTH--------
DISTRICT         JAn95      Feb95
-------------- ---------- ----------
Boston         Canoes     Canoes
               Racquets   Racquets
               Sportswear Sportswear
               Footwear   Footwear
Atlanta        Racquets   Canoes
               Sportswear Racquets
               Footwear   Sportswear
                          Footwear

例8-10 LIMITファンクションを使用するLIMITコマンド

次の例は、LIMITファンクションをLIMITコマンドの引数として使用する例です。LIMITファンクションの結果は値セットに変換されます。

ALLSTAT
LIMIT month TO LIMIT (LIMIT (month TO LAST 10) KEEP FIRST 3)

LIMIT文を実行した後、STATUS month文によって生成される出力は、次のとおりです。

The current status of MONTH is:
MAR97 TO MAY97