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

前
 
次
 

EVERY

EVERYファンクションは、ブール式のすべての値がTRUEの場合にYESを返し、ブール式のいずれかの値がFALSEの場合にNOを返すファンクションです。

戻り値

BOOLEAN

構文

EVERY(boolean-expression [CACHE] [dimension...])

パラメータ

boolean-expression

評価の対象となる値を持つブール式。

CACHE

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

dimension

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

デフォルトでは、EVERYはYES値またはNO値のどちらか1つを返します。結果のディメンションを1つ以上指定すると、EVERYでは、指定したディメンションに対してTRUE値の有無がテストされ、値の配列が返されます。各ディメンションは、boolean-expressionのディメンションであるか、そのディメンションの1つと関連付けられている必要があります。


ヒント:

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

使用上の注意

EVERYでのNASKIPの影響

EVERYはNASKIPオプションの影響を受けます。NASKIPをYES(デフォルト)に設定すると、EVERYでは、式のすべての非NATRUEの場合、NA値は無視されてYESが返され、TRUEでない値がある場合は、NOが返されます。NASKIPをNOに設定すると、EVERYでは、式の値のいずれかがNA値の場合、NA値が返されます。式のすべての値がNAの場合、NASKIPの設定にかかわらず、EVERYはNAを返します。

例7-77 すべての値がTRUEかどうかの調査(地区別)

EVERYファンクションを使用して、各地区のスポーツウェアの販売実績が毎月$50,000を超えたかどうかを調査できます。地区でディメンション化された結果を得るためには、EVERYの2番目の引数としてdistrictを指定します。

LIMIT product TO 'Sportswear'
REPORT HEADING 'Top Sales' EVERY(sales GT 50000, district)

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

DISTRICT       Top Sales
-------------- ----------
Boston                 No
Atlanta               Yes
Chicago               Yes
Dallas                Yes
Denver                Yes
Seattle                NO

例7-78 すべての値がTRUEかどうかの調査(地域別)

すべての地区のスポーツウェア販売実績が毎月$50,000を超える地域を調査する必要があるとします。regionディメンションはdistrictディメンションに関連付けられているため、EVERYファンクションの結果のディメンションとして、districtのかわりにregionを指定できます。

REPORT HEADING 'Top Sales' EVERY(sales GT 50000, region)

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

REGION         Top Sales
-------------- ----------
East                   No
Central               Yes
West                   NO