GROUPBY
手記
この関数は、意味のない結果を返す可能性があるため、視覚的な計算
GROUPBY 関数は、SUMMARIZE 関数に似ています。 ただし、GROUPBY は、追加するすべての拡張列に対して暗黙的な not を実行 CALCULATE。 GROUPBY では、追加する拡張列の集計関数内で新しい関数 (CURRENTGROUP) を使用できます。 GROUPBY は、1 つのテーブル スキャンで複数の集計を実行するために使用されます。
構文
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
パラメーター
用語 | 定義 |
---|---|
table |
データのテーブルを返す任意の DAX 式。 |
groupBy_columnName |
データをグループ化するテーブル内の既存の列の名前 (or テーブル内のrelated)。 このパラメーターを式にすることはできません。 |
name |
二重引用符で囲まれた GroupBy 列の一覧に追加される新しい列に指定された名前。 |
expression |
first 引数が CURRENTGROUPされている X 集計関数の 1 つ ()。 サポートされている X 集計関数の完全な一覧については、後述の「CURRENTGROUP」セクションを参照してください。 |
value を返す
名前引数で指定された拡張列 and groupBy_columnName引数に対して選択された列を含むテーブル。
備考
GROUPBY 関数は次の処理を行います。
指定したテーブル ("to-one" 方向のテーブルandallrelated) から開始します。
all 列の GroupBy を使用してグループ化を作成します (手順 1. の表に存在する必要があります)。
各グループは結果の 1 行ですが、元のテーブル内の行のセットを表します。
グループごとに、追加する拡張列を evaluate します。 SUMMARIZE 関数とは異なり、暗黙的な CALCULATE が実行 not、グループが and コンテキストに配置されない filter。
名前を define する各列には、対応する式が必要です。それ以外の場合は、error が返されます。 first 引数 name は、結果の列の名前を定義します。 second 引数式は、その列の各行の value を取得するために実行される計算を定義します。
groupBy_columnName
は、or テーブル内のテーブル related のいずれかである必要があります。各名前は二重引用符で囲む必要があります。
この関数は、選択した一連の行を、1 つの values groupBy_columnName列の or によって、一連のサマリー行にグループ化します。 グループごとに 1 行が返されます。
GROUPBY は主に、DAX テーブル式の中間結果に対して集計を実行するために使用されます。 モデル内の物理テーブルに対して効率的な集計を行う場合は、SUMMARIZECOLUMNSorSUMMARIZE 関数の使用を検討してください。
この関数は、行レベル セキュリティ (RLS) 規則 not 計算列で使用する場合に、DirectQuery モードで使用するためにサポート or。
CURRENTGROUP
CURRENTGROUP は、GROUPBY 関数内の拡張列を定義する式でのみ使用できます。 in-effectCURRENTGROUP、GROUPBY 結果の現在の行に属する GROUPBY のテーブル引数から行のセットを返します。 CURRENTGROUP 関数は、and、first、AVERAGEX、COUNTAX、COUNTX、GEOMEANX、MAXX、MINX、PRODUCTX、STDEVX.S、STDEVX.P、SUMXのいずれかの集計関数の VARX.S 引数としてのみサポート VARX.P 引数を受け取っていません。
例
次の例 first では、and 関数を使用して、物理テーブルに対して国 productSUMMARIZECOLUMNS カテゴリ別にグループ化された売上合計を計算します。 次に、GROUPBY 関数を使用して、first ステップの中間結果をスキャンし、find カテゴリ全体の各国の最大売上を product します。
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)