set 分析
アプリで選択するときは、データ内のレコードのサブセットを定義します。Sum()、Max()、Min()、Avg()、Count() などの集計関数は、このサブセットに基づいて計算されます。
つまり、選択内容によって集計の範囲が定義されます。 計算が行われるレコードのセットを定義します。
set 分析は、現在の選択条件によって定義されたレコードのセットとは異なるスコープを定義する方法を提供します。この新しいスコープは、代替値選択と見なすこともできます。
これは、現在の選択を特定の値 (例えば、昨年の値や世界の市場シェア) と比較する場合に役立ちます。
set 数式
set 数式は中括弧で囲まれた集計関数内外で使用できます。
内部の set 数式
Sum( {$<Year={2021}>} Sales )
外部の set 数式
{<Year={2021}>} Sum(Sales) / Count(distinct Customer)
内部と外部の set 数式の詳細については、「内部と外部の set 数式」を参照してください。
set 数式には、次の要素の組み合わせが含まれます。
-
識別子set 識別子は他の場所で定義された選択を表します。また、データ内の特定のレコード セットを表します。これは、現在の選択、ブックマークからの選択、または並列ステートからの選択である可能性があります。単純な set 数式は、ドル記号 {$} など、現在の選択のすべてのレコードを意味する 1 つの識別子で構成されます。
例: $、1、BookMark1、State2
参照先: set 識別子
-
演算子set 演算子を使用して、異なる set 識別子間の和集合、差分、または共通部分を作成できます。このようにして、set 識別子によって定義された選択のサブセットまたはスーパーセットを作成できます。
例: +、-、*、/
参照先: set 演算子
-
修飾子set 修飾子を set 識別子に追加して、その選択を変更できます。修飾子は単独で使用することもでき、既定の識別子を変更します。修飾子は山括弧 <…> でくくる必要があります。
例: <Year={2020}>、<Supplier={ACME}>
参照先: set 修飾子
要素が組み合わされて、set 数式が形成されます。
例えば、上記の set 数式は、集計 Sum(Sales) から構築されます。
最初のオペランドは、現在の選択の 2021 年の売上を返します。これは、$ set 識別子と 2021 年の選択を含む修飾子によって示されます。2 番目のオペランドは Sweden に対して Sales を返し、1 set 識別子で示される現在の選択条件を無視します。
最後に、数式は、+ set 演算子で示されるように、2 つのセット オペランドのいずれかに属するレコードで構成されるセットを返します。
完全な構文の説明については、set 数式の構文 を参照してください。
例
上記の set 数式要素を組み合わせた例は、次のトピックで利用できます。
他の数式を試すには、チュートリアル - set 数式の作成 を参照してください。
Natural sets
通常、set 数式は、データ モデル内のレコードのセットと、このデータのサブセットを定義する選択の両方を表します。この場合、セットは natural set と呼ばれます。
set 識別子は、set 修飾子の有無にかかわらず、常に natural set を表します。
ただし、set 演算子を使用した set 数式もレコードのサブセットを表しますが、通常、項目値の選択を使用して記述することはできません。そのような数式は non-natural set です。
例えば、{1-$} によって与えられたセットは、常に選択によって定義されるとは限りません。したがって、それは natural set ではありません。これは、次のデータをロードしてテーブルに追加し、フィルター パネルを使用して選択することで表示できます。
Load * Inline
[Dim1, Dim2, Number
A, X, 1
A, Y, 1
B, X, 1
B, Y, 1];
Dim1 と Dim2 を選択すると、次のテーブルに示すビューが表示されます。
最初のメジャーの set 数式は natural set を使用します。これは、{$} で行われた選択に対応します。
2 番目のメジャーは異なります。{1-$} を使用します。このセットに対応する選択はできないため、non-natural set です。
この区別は、いくつかの結果をもたらします。
-
set 修飾子は set 識別子にのみ適用できます。任意の set 数式に適用することはできません。例えば、次のような set 数式を使用することはできません。
{ (BM01 * BM02) <Field={x,y}> }
ここで、通常の (丸) 括弧は、set 修飾子を適用する前に BM01 と BM02 の共通部分を評価する必要があることを意味します。その理由は、変更できる要素セットがないためです。
-
P() および E() 要素関数内で non-natural set を使用することはできません。これらの関数は要素セットを返しますが、non-natural set から要素セットを推測することはできません。
-
データ モデルに多くのテーブルがある場合、non-natural set を使用するメジャーは、常に正しい軸の値に起因するとは限りません。例えば、次のチャートでは、除外された販売数の一部は正しい Country に起因しますが、他の数は NULL を Country として持っています。
割り当てが正しく行われるかどうかは、データ モデルによって異なります。この場合、選択によって除外された国に関連する番号を割り当てることはできません。
識別子 | 説明 |
---|---|
1 | 行われた選択に関係なく、アプリケーションに含まれるすべてのレコード セットを表しています。 |
$ | 現在選択されているレコードを表しています。set 数式 {$} は、set 数式を提示していない状態と同様です。 |
$1 | 以前の選択を表しています。$2 は以前の 1 つを除く選択を表し、以下同様に表します。 |
$_1 | 次 (将来) の選択を表しています。$_2 は次の 1 つを除く選択を表し、以下同様に表します。 |
BM01 | 任意のブックマーク ID またはブックマーク名を使用できます。 |
MyAltState | ステート名ごとに並列ステートで行った選択を参照できます。 |
例 | 結果 |
---|---|
sum ({1} Sales) | アプリの sales の合計が返されます。選択は無視されますが、軸は無視されません。 |
sum ({$} Sales) |
現在の選択の sales が返されます (sum(Sales) と同様)。 |
sum ({$1} Sales) |
前の選択の sales が返されます。 |
sum ({BM01} Sales) |
BM01 という名前のブックマークの sales が返されます。 |
例 | 結果 |
---|---|
sum({$<OrderDate = DeliveryDate>} Sales) | OrderDate = DeliveryDate の現在の選択の sales が返されます。 |
sum({1<Region = {US}>} Sales) |
現在の選択を無視して、US 地域の sales が返されます。 |
sum({$<Region = >} Sales) |
選択における Region での選択を除いた sales が返されます。 |
sum({<Region = >} Sales) |
上記の例と同じ値が返されます。set 修飾子が省略されている場合は $ と見なされます。 |
sum({$<Year={2000}, Region={“U*”}>} Sales) | 現在の選択条件での sales が返されますが、Year と Region で新たな選択が行われます。 |