仮想テーブル
構文
[DEFINE
(
TABLE <table name> = <table expression>
[WITH VISUAL SHAPE
(AXIS <axis name>
(GROUP <column>[, <column>] + TOTAL <column>) +
ORDER BY <column>[, <column>] +
) +
[DENSIFY <string literal>]
]
) +
]
(EVALUATE <table expression>) +
パラメーター
テーブル式は、仮想テーブルの内容を定義します。 仮想テーブルは、現在のクエリのスコープでのみ定義されます。
必要に応じて、仮想テーブルでビジュアル図形を定義できます。 視覚的な図形は、視覚的な計算に使用されます。 ビジュアル図形は、必要に応じてブール型 DENSIFY 列を持つ軸で構成されます。
軸は、ロールアップ グループの一覧の後に、軸の順序を指定する列ごとの順序の一覧として定義されます。 ロールアップ グループは、列ごとに 1 つ以上のグループと、各行が現在のロールアップ グループの小計であるかどうかを示す 1 つのブール型 TOTAL 列で構成されます。 FALSE 値は、現在の行が詳細行 (現在のロールアップ グループによるグループ化) であることを示します。 TRUE 値は、現在の行がロールアップされていることを示します (現在のロールアップ グループによるグループ化ではありません)。
DENSIFY 列が要求された場合、視覚図形は密度化を実行します。 つまり、元のテーブル式の行に加えて、元のテーブル式に存在しない軸値の組み合わせも追加します。 つまり、元のテーブル式を使用して、軸のクロス結合から左外部結合を行います。 DENSIFY 列の TRUE 値は、現在の行が元のテーブル式に含まれていないし、密度化プロセスによって追加されたことを示します。 このような行は、すべてのメジャー列 (軸定義の外側の列) で空の値を持つ必要があります。 DENSIFY 列の FALSE 値は、現在の行が元のテーブル式の行であることを示します。
戻り値
仮想テーブルが定義されている
所見
変数とは異なり、仮想テーブルには独自の系列があり、定義されたテーブル式の系列は含まれません。
例
テーブル T に次の行があるとします。
年 | 積 | SalesAmount |
---|---|---|
2000 | 林檎 | $ 10.1 |
2000 | バナナ | $ 10.2 |
2001 | 林檎 | $ 20.3 |
DEFINE TABLE data = SUMMARIZECOLUMNS(ROLLUPADDISSUBTOTAL(T[Year], "IsYearTotal"), ROLLUPADDISSUBTOTAL(T[Product], "IsProductTotal"), "Meausre", SUM(T[SalesAmount]))
WITH VISUAL SHAPE
AXIS ROWS GROUP [Year] TOTAL [IsYearTotal] ORDER BY [Year]
AXIS COLUMNS GROUP [Product] TOTAL [IsProductTotal] ORDER BY [Product]
DENSIFY "IsDensified"
EVALUATE data
返される結果は次のようになります。
data[Year] | data[Product] | data[IsYearTotal] | data[IsProductTotal] | data[Measure] | data[IsDensified] |
---|---|---|---|---|---|
真 | 真 | $ 40.6 | 偽 | ||
2000 | 偽 | 真 | $ 20.3 | 偽 | |
2001 | 偽 | 真 | $ 20.3 | 偽 | |
林檎 | 真 | 偽 | $ 30.4 | 偽 | |
2000 | 林檎 | 偽 | 偽 | $ 10.1 | 偽 |
2001 | 林檎 | 偽 | 偽 | $ 20.3 | 偽 |
バナナ | 真 | 偽 | $ 10.2 | 偽 | |
2000 | バナナ | 偽 | 偽 | $ 10.2 | 偽 |
2001 | バナナ | 偽 | 偽 | 真 |