DAX 其他 - GROUPBY 函式



描述

返回一個包含一組選定列的表。允許在它新增的擴充套件列中的聚合函式中使用 DAX CURRENTGROUP 函式。GROUPBY 嘗試重用已分組的資料,使其具有高效能。

DAX GROUPBY 函式類似於 DAX SUMMARIZE 函式。但是,GROUPBY 不會對其新增的任何擴充套件列進行隱式 CALCULATE。

DAX GROUPBY 函式是 Excel 2016 中的新增功能。

語法

GROUPBY (<table>, [<groupBy_columnName1>], [<name>, <expression>] …) 

引數

序號 術語和定義
1

table

任何返回資料表的 DAX 表示式。

2

groupBy_columnName1

表中(或相關表中)現有列的名稱,資料將按其進行分組。

此引數不能為表示式。

3

name

賦予新增到 GroupBy 列列表的新列的名稱,用雙引號括起來。

4

expression

任何返回單個標量值的 DAX 表示式,其中表達式將針對每組 GroupBy 值進行計算。

  • 它可以包含任何“X”聚合函式,例如 SUMX、AVERAGEX、MINX、MAXX 等,當以這種方式使用其中一個函式時,表引數(它是表表達式)可以用 CURRENTGROUP 函式替換。(有關詳細資訊,請參閱備註部分)。

  • 但是,CURRENTGROUP 函式只能在表示式中表掃描的頂層使用。這意味著:

    • 允許使用 ABS (SUMX (CURRENTGROUP (), [Column])),因為 ABS 不執行掃描。

    • 但是,不允許使用 SUMX (<table>, SUMX (CURRENTGROUP () …))。

  • DAX CALCULATE 函式和計算欄位在表示式中不允許使用。

返回值

一個包含 groupBy_columnName 引數的選定列和 name 引數指定的按組列的表。

備註

GROUPBY 函式執行以下操作:

  • 從指定的表(以及“一對一”方向中的所有相關表)開始。

  • 使用所有 GroupBy 列(這些列必須存在於步驟 1 中的表中)建立分組。

  • 每個組在結果中是一行,但代表原始表中的一組行。

  • 對於每個組,評估正在新增的擴充套件列。與 SUMMARIZE 函式不同,不會執行隱式 CALCULATE,並且該組不會放入篩選上下文。

引數

  • 為其定義名稱的每一列都必須具有相應的表示式。否則,將返回錯誤。

    • 第一個引數 name 定義結果中列的名稱。第二個引數 expression 定義執行的計算以獲得該列中每一行的值。

    • 每個名稱都必須用雙引號括起來。

  • groupBy_columnName 必須位於表中或相關表中。

    • 該函式透過一個或多個 groupBy_columnName 列的值將選定的一組行分組到一組彙總行中。每個組返回一行。

CURRENTGROUP ()

  • CURRENTGROUP 函式只能用於定義 GROUPBY 函式內列的表示式中。

  • CURRENTGROUP 返回屬於 GROUPBY 結果當前行的 GROUPBY 表引數中的行集。

  • CURRENTGROUP 函式不接受任何引數,並且僅作為以下聚合函式的第一個引數支援:AverageX、CountAX、CountX、GeoMeanX、MaxX、MinX、ProductX、StDevX.S、StDevX.P、SumX、VarX.S、VarX.P。

示例

= GROUPBY ( 
   Sales,Sales[Salesperson],Products[Product],"Total Sales",  
   SUMX (CURRENTGROUP (),[Sales Amount]) 
)
dax_functions_other.htm
廣告
© . All rights reserved.