モデル式

モデル式は、SELECT文のmodel_clauseでのみ、さらにモデル・ルールの右側でのみ使用されます。 モデル式は、model_clauseで事前定義されたメジャー列のセルに値を戻します。 詳細は、「model_clause」を参照してください。

model_expression::=

モデル式でメジャー列を指定する場合、指定する任意の条件と式は単一の値に変換される必要があります。

モデル式で集計ファンクションを指定する場合、ファンクションの引数はmodel_clauseで事前定義したメジャー列です。 集計ファンクションは、モデル・ルールの右側でのみ使用できます。

モデル・ルールの右側で分析ファンクションを指定すると、model_clauseに複雑な計算を直接表記することができます。 モデル式で分析ファンクションを使用するときには、次の制限事項が適用されます。

  • 分析ファンクションは、UPDATEルールのみで使用できます。

  • モデル・ルールの左側にFORループまたはORDER BY句が含まれている場合は、モデル・ルールの右側で分析ファンクションを指定できません。

  • 分析ファンクションのOVER句の引数に集計を含めることはできません。

  • 分析ファンクションのOVER句の前の引数にセル参照を含めることはできません。

関連項目:

モデル・ルールの右側で分析ファンクションを使用する例は、MODEL句: 例を参照してください。

expr自体がモデル式である場合、ネストしたセル参照と呼ばれます。 ネストしたセル参照には、次の制限事項が適用されます。

  • ネストは1レベルのみ可能です。

  • ネストしたセル参照は、単一セル参照である必要があります。

  • model_rules_clauseAUTOMATIC ORDERが指定されているとき、ネストしたセル参照で使用されるメジャーが静的なままの場合のみ、ネストしたセル参照をモデル・ルールの左側で使用できます。

後述するモデル式は、次に示す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」を参照してください。