CREATE ANALYTIC VIEW
目的
CREATE ANALYTIC VIEW文を使用すると、分析ビューを作成できます。分析ビューでは、ファクト・データのソースを指定して、計算またはデータに対して実行する他の分析操作を説明するメジャーを定義します。分析ビューでは、分析ビューの行を定義する属性ディメンションおよび属性階層も指定します。
前提条件
自分のスキーマ内に分析ビューを作成する場合は、CREATE ANALYTIC VIEWシステム権限が必要です。他のユーザーのスキーマ内に分析ビューを作成する場合は、CREATE ANY ANALYTIC VIEWシステム権限が必要です。
構文
create_analytic_view::=
classification_clause::=
using_clause::=
dim_by_clause::=
dim_key::=
dim_ref::=
hier_ref::=
measures_clause::=
av_measure::=
base_measure_clause::=
calc_measure_clause::=
meas_aggregate_clause::=
default_measure_clause::=
default_aggregate_clause::=
cache_clause::=
cache_specification::=
levels_clause::=
level_specification::=
セマンティクス
OR REPLACE
分析ビューの既存の定義を異なる定義で置換するには、OR REPLACEを指定します。
FORCEおよびNOFORCE
正常にコンパイルされない場合でも強制的に分析ビューを作成するには、FORCEを指定します。NOFORCEを指定した場合、分析ビューを正常にコンパイルする必要があり、そうでない場合はエラーが発生します。デフォルトは、NOFORCEです。
schema
分析ビューを作成するスキーマを指定します。スキーマを指定しない場合、自分のスキーマに分析ビューが作成されます。
IF NOT EXISTS
IF NOT EXISTSを指定すると、次の効果が得られます。
-
分析ビューが存在していない場合は、文の最後に新しいものが作成されます。
-
分析ビューが存在している場合は、既存のものが検出され、新しいものは作成されません。
単一の文で一度に指定できるのは、OR REPLACEまたはIF NOT EXISTSのみです。同一の文でOR REPLACEとIF NOT EXISTSの両方を使用すると、エラーになります。
CREATE文ではIF EXISTSを指定できません。
analytic_view
分析ビューの名前を指定します。
SHARING
SHARING句は、アプリケーションのメンテナンスの際に、アプリケーション・ルートにオブジェクトを作成する場合に使用します。このタイプのオブジェクトはアプリケーション共通オブジェクトと呼ばれ、アプリケーション・ルートに属するアプリケーションPDBと共有できます。
次の共有属性のいずれかを使用して、オブジェクトを共有する方法を指定できます。
-
METADATA- メタデータ・リンクはメタデータを共有しますが、そのデータは各コンテナに固有です。このタイプのオブジェクトは、メタデータリンク・アプリケーション共通オブジェクトと呼ばれます。 -
NONE- オブジェクトは共有されず、アプリケーション・ルートでのみアクセスできます。
classification_clause
classification句を使用して、CAPTIONまたはDESCRIPTION分類の値を指定し、ユーザー定義分類を指定します。分類では、分析ビューとそのコンポーネントの情報を提供するためにアプリケーションで使用される、説明的なメタデータを提供します。
同じオブジェクトに、任意の数の分類を指定できます。分類の最大長は4000バイトです。
CAPTIONとDESCRIPTION分類では、DDLショートカットCAPTION 'caption'およびDESCRIPTION 'description'または完全な分類構文を使用できます。
言語別に分類値を変更できます。CAPTIONまたはDESCRIPTION分類に言語を指定するには、完全な構文を使用する必要があります。言語を指定しない場合、分類の言語の値はNULLです。言語の値は、NULLまたは有効なNLS_LANGUAGE値である必要があります。
using_clause
ファクト表またはビューを指定します。外部表およびリモート表を使用できます。他のスキーマ内に表またはビューを指定できます。表またはビューに別名を指定できます。
dim_by_clause
分析ビューの属性ディメンションを指定します。
dim_key
分析ビューで関連付けられている属性ディメンション、ファクト表の列、属性ディメンションの列および階層を指定します。
KEYキーワードを使用して、ファクト表に1つ以上の列を指定します。
REFERENCESキーワードを使用して、分析ビューをディメンション化する属性ディメンションの属性を指定します。各属性はレベル・キーである必要があります。DISTINCTキーワードでは、非正規化ファクト表(属性ディメンションとファクト・データが同じ表に含まれている)の使用がサポートされています。ファクト・テーブルを使用して属性ディメンションが定義されている場合は、REFERENCES DISTINCTを使用します。
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;
















