CREATE ANALYTIC VIEW

目的

CREATE ANALYTIC VIEW文を使用すると、分析ビューを作成できます。分析ビューでは、ファクト・データのソースを指定して、計算またはデータに対して実行する他の分析操作を説明するメジャーを定義します。分析ビューでは、分析ビューの行を定義する属性ディメンションおよび属性階層も指定します。

ヒント:

分析ビューを作成するSQLスクリプトは、Oracle Live SQLのWebサイト(https://livesql.oracle.com/apex/livesql/file/index.html)で表示および実行できます。このWebサイトには、分析ビューの作成方法および使用方法を示すスクリプトおよびチュートリアルが用意されています。

前提条件

自分のスキーマ内に分析ビューを作成する場合は、CREATE ANALYTIC VIEWシステム権限が必要です。他のユーザーのスキーマ内に分析ビューを作成する場合は、CREATE ANY ANALYTIC VIEWシステム権限が必要です。

構文

create_analytic_view::=

sharing_clause::=

classification_clause::=

measures_clause::=

base_measure_clause::=

calc_measure_clause::=

meas_aggregate_clause::=

default_measure_clause::=

default_aggregate_clause::=

cache_specification::=

level_specification::=

セマンティクス

OR REPLACE

分析ビューの既存の定義を異なる定義で置換するには、OR REPLACEを指定します。

FORCEおよびNOFORCE

正常にコンパイルされない場合でも強制的に分析ビューを作成するには、FORCEを指定します。NOFORCEを指定した場合、分析ビューを正常にコンパイルする必要があり、そうでない場合はエラーが発生します。デフォルトは、NOFORCEです。

schema

分析ビューを作成するスキーマを指定します。スキーマを指定しない場合、自分のスキーマに分析ビューが作成されます。

analytic_view

分析ビューの名前を指定します。

sharing_clause

分析ビューをアプリケーション共通オブジェクトとして作成するかどうかを指定します。METADATAを指定すると、分析ビューのメタデータが共有されますが、そのデータは各コンテナに固有です。DATAを指定すると、分析ビュー・オブジェクトが共有され、そのデータはアプリケーション・コンテナ内のすべてのコンテナに対して同じになり、アプリケーション・ルートにのみ格納されます。NONEを指定すると、分析ビューが共有対象から除外されます。

classification_clause

classification句を使用して、CAPTIONまたはDESCRIPTION分類の値を指定し、ユーザー定義分類を指定します。分類では、分析ビューとそのコンポーネントの情報を提供するためにアプリケーションで使用される、説明的なメタデータを提供します。

同じオブジェクトに、任意の数の分類を指定できます。分類の最大長は4000バイトです。

CAPTIONDESCRIPTION分類では、DDLショートカットCAPTION 'caption'およびDESCRIPTION 'description'または完全な分類構文を使用できます。

言語別に分類値を変更できます。CAPTIONまたはDESCRIPTION分類に言語を指定するには、完全な構文を使用する必要があります。言語を指定しない場合、分類の言語の値はNULLです。言語の値は、NULLまたは有効なNLS_LANGUAGE値である必要があります。

using_clause

ファクト表またはビューを指定します。外部表およびリモート表を使用できます。他のスキーマ内に表またはビューを指定できます。表またはビューに別名を指定できます。

dim_by_clause

分析ビューの属性ディメンションを指定します。

dim_key

分析ビューで関連付けられている属性ディメンション、ファクト表の列、属性ディメンションの列および階層を指定します。

KEYキーワードを使用して、ファクト表に1つ以上の列を指定します。

REFERENCESキーワードを使用して、分析ビューをディメンション化する属性ディメンションの属性を指定します。属性はレベル・キーである必要があります。

HIERARCHIESキーワードを使用して、属性ディメンションを使用する分析ビューの階層を指定します。

dim_ref

属性ディメンションを指定します。属性ディメンションの別名を指定できます。これは、同じディメンションを複数回使用する場合や、異なるスキーマからの同じ名前の複数のディメンションを使用する場合に必要になります。

hier_ref

階層を指定します。階層の別名を指定できます。リストのいずれかの階層をデフォルトとして指定できます。デフォルトを指定しない場合、リストの最初の階層がデフォルトになります。

measures_clause

分析ビューのメジャーを指定します。

av_measure

この分析ビュー内のメジャー全体について、単一のファクト列または式のいずれかを使用してメジャーを定義します。メジャーは、ベース・メジャーまたは計算済メジャーのいずれかになります。

base_measure_clause

オプションでファクト列またはmeas_aggregate_clauseあるいはその両方を指定して、ベース・メジャーを定義します。ファクト列を指定しない場合、分析ビューではメジャーと同じ名前のファクト表の列が使用されます。同じ名前の列が存在しない場合、エラーが発生します。

calc_measure_clause

計算済メジャー式を指定して、計算済メジャーを定義します。式は分析ビューの他のメジャーを参照することもありますが、ファクト列を参照しないこともあります。計算済メジャーは集計されたベース・メジャーに対して計算されるため、aggregate句はありません。

計算済メジャー式の構文と説明は、「計算済メジャー式」を参照してください。

default_measure_clause

分析ビューのデフォルト・メジャーとして使用するメジャーを指定します。メジャーを指定しない場合、最初に定義されたメジャーがデフォルトになります。

meas_aggregate_clausè

ベース・メジャーのデフォルト集計演算子を指定します。集計演算子を指定しない場合は、default_aggregate_clauseによって指定された演算子が使用されます。

default_aggregate_clause

分析ビュー内のすべてのベース・メジャーについてデフォルト集計を指定します。デフォルト集計を指定しない場合、デフォルト値はSUMです。

cache_clause

適切なマテリアライズド・ビューが使用可能な場合に問合せの応答時間を改善するには、cache句を指定します。1つ以上のキャッシュ仕様を指定できます。

cache_specification

cache句に、1つ以上のメジャー・グループを指定します。すべてのメジャー・グループを含めるには、ALLを指定します。各メジャー・グループに、1つ以上のメジャーおよび1つ以上のレベルのグループ化を含めることができます。レベルのグループ化には、1つ以上のレベルを指定できます。

level_specification

キャッシュ仕様のメジャー・グループのレベルのグループ化のために、1つ以上のレベルを指定します。階層ごとに1つのレベルのみを指定します。階層レベルには、集計値を含むマテリアライズド・ビューが存在する必要があります。

次に、SALES_FACT表の説明を示します。

desc SALES_FACT
Name              Null? Type          
----------------- ----- ------------- 
MONTH_ID                VARCHAR2(10)  
CATEGORY_ID             NUMBER(6)     
STATE_PROVINCE_ID       VARCHAR2(120) 
UNITS                   NUMBER(6)     
SALES                   NUMBER(12,2)

次の例では、SALES_FACT表を使用してSALES_AV分析ビューを作成します。

CREATE OR REPLACE ANALYTIC VIEW sales_av
USING sales_fact
DIMENSION BY
  (time_attr_dim                         -- An attribute dimension of time data
    KEY month_id REFERENCES month_id
    HIERARCHIES (
      time_hier DEFAULT),
   product_attr_dim                      -- An attribute dimension of product data
    KEY category_id REFERENCES category_id
    HIERARCHIES (
      product_hier DEFAULT),
   geography_attr_dim                    -- An attribute dimension of store data
    KEY state_province_id 
    REFERENCES state_province_id HIERARCHIES (
      geography_hier DEFAULT)
   )
MEASURES
 (sales FACT sales,                      -- A base measure
  units FACT units,                      -- A base measure
  sales_prior_period AS                  -- Calculated measures
    (LAG(sales) OVER (HIERARCHY time_hier OFFSET 1)),
  sales_year_ago AS
    (LAG(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL year)),
  chg_sales_year_ago AS
    (LAG_DIFF(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL year)),
  pct_chg_sales_year_ago AS
    (LAG_DIFF_PERCENT(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL year)),
  sales_qtr_ago AS
    (LAG(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL quarter)),
  chg_sales_qtr_ago AS
    (LAG_DIFF(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL quarter)),
  pct_chg_sales_qtr_ago AS
    (LAG_DIFF_PERCENT(sales) OVER (HIERARCHY time_hier OFFSET 1
     ACROSS ANCESTOR AT LEVEL quarter))
  )
DEFAULT MEASURE SALES;