OVER ステートメントを使用してデータ スライスを参照する
カスタム演算式は、ビジュアライゼーションのマーカーで表現されるデータのスライス上で評価されます。演算式の評価に現在のスライスの外部にあるデータも含める場合は、カスタム演算式で OVER ステートメントを使用します。
現在のスライスの外部にあるデータを含めるという意味については、以下の図を参照してください。同様の図を使用してスライスとマーカーの概念を説明することもできます。カスタム演算式、特に OVER ステートメントを含むカスタム演算式を扱う場合には、この概念を理解することが不可欠です。
大きなボックスは、複数種類の果物の各地域での年間売上を含むデータテーブルのすべてのローを表し、キューブはデータの各スライスを表しています。
![](../../images/over_intro.png)
ここで、北部での 2018 年のオレンジの売上を、西部での 2018 年のレモンの売上、または西部での 2015 ~ 2017 年のオレンジの売上と比較する場合を想定します。つまり、このような演算式では、北部での 2018 年のオレンジの売上の外部にあるデータ スライスを参照する必要があり、これには OVER ステートメントが使用されます。OVER ステートメントを使用すれば、演算式で参照されるデータを新しい方法でグループ化することができます。
以下の例で、演算式に OVER ステートメントを記述する方法と、OVER ステートメントがどのように実行されるのかを簡単に理解できます。
OVER 演算式の例
[Axis.X]
または[Axis.Color]
.などの軸自身を参照します。散布図はそれぞれの果物 (リンゴ、オレンジ、洋ナシ) の売上の合計を示します。合計売上額は 300 です。
![](../../images/over_example_1.png)
以下の式
Sum([Sales]) OVER (All([Axis.X]))
を Y 軸上に指定すると、すべてのマーカーが再評価され、散布図は次のように変化します。
![](../../images/over_example_2.png)
結果を理解するため、例として売上合計、リンゴを表すマーカーを取り上げます。カスタム演算式は、すべての X 軸スライスの売上合計、つまりリンゴ、オレンジ、洋ナシの売上額の合計 (150+80+70) を示すようにマーカーが再評価されることを表しています。他のマーカーについても同様で、すべてのマーカーは同じ値になります。実際、演算式の OVER (All([Axis.X]))
の部分は、X 軸上のスライスが無視されることを意味します。
次の例では、年が色の軸ごとに指定され、データはさらにスライスされます。
![](../../images/over_example_3.png)
Y 軸を次の演算式に変更します。
Sum([Sales]) OVER (All([Axis.Color]))
![](../../images/over_example_5.png)
このカスタム演算式は、すべての色のスライスの売上合計を示すように各マーカーが再評価されることを意味し、実際、色によるスライスは無視されます。
例として、洋ナシ、2015 年を取り上げます (洋ナシの青色の星)マーカーの新しい値は、3 年間の洋ナシの売上合計 (40+20+10) を示します。同じ種類の果物のすべてのマーカーは、色 (年) に関係なく同じ Y 軸値を取得します。
上記の例が実際に使用されることはありませんが、OVER ステートメントがいわゆるノード ナビゲーション メソッドと組み合わせてどのように実行されるかを理解するのに役立ちます。
計算カラムにOVER ステートメントを使用する
計算列で OVER ステートメントを使用した場合、その結果はカスタム演算式で使用した場合とは異なります。計算列では、結果のレコード数が少なくなる可能性があります。
- 計算カラムにOVER ステートメントを使用する
データに対して計算を実行し、その結果をデータテーブルに追加された新しいカラムに値として表示することができます。計算に使用する演算式では、OVER ステートメントを使用できます。ただし、計算カラムで OVER ステートメントを使用する場合、その動作はカスタム演算式で使用した場合とは異なります。計算カラムでは、OVER 式を使用して異なるグループに対する個別の固定された値を計算し、OVER 式によってデータが「少ない数のレコードにスライスされる」ことがあります。 - OVER 式での集計の使用
式の結果をカラムの値の集計ビューに表示する必要がある場合、選択した式関数を使用して出力を決定するだけです。たとえば、売上高を含むカラムを集計する必要がある場合、[式] フィールドにSum([Sales])
を入力します。ただし、集計値と OVER 式を組み合わせると、お好みの方法でデータを分割できます。 - 集計データで式を使用する (THEN キーワード)
THEN キーワードを使用すると、すでに集計されたデータ (通常は現在のビジュアライゼーション内のデータ) で式を評価できます。多くの場合、これにより計算のパフォーマンスが向上します。たとえば、OVER 式を使用している場合、最初に集計を許可し、次に式の OVER 部分を適用することにより、パフォーマンスが向上します。これは、インデータベース データを操作している場合には必須です。この場合に使用できるローレベル データはないためですが、インメモリ データの操作時でもパフォーマンスは改善されます。