モデル式
モデル式は、SELECT文のmodel_clauseでのみ、さらにモデル・ルールの右側でのみ使用されます。モデル式は、model_clauseで事前定義されたメジャー列のセルに値を戻します。詳細は、「model_clause」を参照してください。
model_expression::=
モデル式でメジャー列を指定する場合、指定する任意の条件と式は単一の値に変換される必要があります。
モデル式で集計ファンクションを指定する場合、ファンクションの引数はmodel_clauseで事前定義したメジャー列です。集計ファンクションは、モデル・ルールの右側でのみ使用できます。
モデル・ルールの右側で分析ファンクションを指定すると、model_clauseに複雑な計算を直接表記することができます。モデル式で分析ファンクションを使用するときには、次の制限事項が適用されます。
-
分析ファンクションは、
UPDATEルールのみで使用できます。 -
モデル・ルールの左側に
FORループまたはORDERBY句が含まれている場合は、モデル・ルールの右側で分析ファンクションを指定できません。 -
分析ファンクションの
OVER句の引数に集計を含めることはできません。 -
分析ファンクションの
OVER句の前の引数にセル参照を含めることはできません。
関連項目:
モデル・ルールの右側で分析ファンクションを使用する例は、MODEL句: 例を参照してください。
expr自体がモデル式である場合、ネストしたセル参照と呼ばれます。ネストしたセル参照には、次の制限事項が適用されます。
-
ネストは1レベルのみ可能です。
-
ネストしたセル参照は、単一セル参照である必要があります。
-
model_rules_clauseにAUTOMATICORDERが指定されているとき、ネストしたセル参照で使用されるメジャーが静的なままの場合のみ、ネストしたセル参照をモデル・ルールの左側で使用できます。
後述するモデル式は、次に示すSELECT文のmodel_clauseに基づいています。
SELECT country,prod,year,s
FROM sales_view_ref
MODEL
PARTITION BY (country)
DIMENSION BY (prod, year)
MEASURES (sale s)
IGNORE NAV
UNIQUE DIMENSION
RULES UPSERT SEQUENTIAL ORDER
(
s[prod='Mouse Pad', year=2000] =
s['Mouse Pad', 1998] + s['Mouse Pad', 1999],
s['Standard Mouse', 2001] = s['Standard Mouse', 2000]
)
ORDER BY country, prod, year;
次のモデル式は、記号表記法を使用して単一セル参照を表しています。この式は、2000年のマウス・パッドの売上を示します。
s[prod='Mouse Pad',year=2000]
次のモデル式は、CVファンクションを使用して、位置表記法を使用する複数セル参照を表しています。この式は、prodディメンション列の現在値の2001年における売上を示します。
s[CV(prod), 2001]
次のモデル式は、集計ファンクションを表しています。この式は、yearディメンション列の現在の値-2からyearディメンション列の現在の値-1までの年のマウス・パッドの売上合計を示します。
SUM(s)['Mouse Pad',year BETWEEN CV()-2 AND CV()-1]
関連項目:
「CV」および「model_clause」を参照してください。
