GROUPBY

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

Примечание

Эта функция не рекомендуется использовать в визуальных вычислениях, так как, скорее всего, возвращает бессмысленные результаты.

Функция GROUPBY аналогична функции SUMMARIZE. Однако GROUPBYnot выполняет неявную CALCULATE для всех столбцов расширений, которые он добавляет. GROUPBY позволяет использовать новую функцию CURRENTGROUPв функциях агрегирования в столбцах расширения, которые он добавляет. GROUPBY используется для выполнения нескольких агрегатов в одной таблице.

Синтаксис

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

Параметры

Срок Определение
table Любое выражение DAX, возвращающее таблицу данных.
groupBy_columnName Имя существующего столбца в таблице (or в таблице related),с помощью которого данные должны быть сгруппированы. Этот параметр не может быть выражением.
name Имя, заданное новому столбцу, который добавляется в список столбцов GroupBy, заключенный в двойные кавычки.
expression Одна из функций агрегирования X с аргументом firstCURRENTGROUP(). Полный список поддерживаемых функций агрегирования X см. в разделе с CURRENTGROUP ниже.

Возврат value

Таблица с выбранными столбцами для аргументов groupBy_columnName and столбцы расширения, назначенные аргументами имени.

Замечания

  • Функция GROUPBY выполняет следующие действия:

    1. Начните с указанной таблицы (andallrelated таблицы в направлении "к одному".

    2. Создайте группирование с помощью all столбцов GroupBy (которые должны существовать в таблице из шага 1.).

    3. Каждая группа является одной строкой в результате, но представляет набор строк в исходной таблице.

    4. Для каждой группы evaluate добавляемых столбцов расширения. В отличие от функции SUMMARIZE, подразумеваемый CALCULATE выполняется not, and группа не помещается в контекст filter.

  • Каждый столбец, для которого define имя должно иметь соответствующее выражение; в противном случае возвращается error. Аргумент first, имя, определяет имя столбца в результатах. Аргумент second, выражение определяет вычисления, выполняемые для получения value для каждой строки в этом столбце.

  • groupBy_columnName должны находиться в таблице or в таблице related.

  • Каждое имя должно быть заключено в двойные кавычки.

  • Функция группирует выбранный набор строк в набор сводных строк values одного or больше столбцов groupBy_columnName. Для каждой группы возвращается одна строка.

  • GROUPBY в основном используется для выполнения агрегирования по промежуточным результатам из DAX табличных выражений. Для эффективной агрегирования по физическим таблицам в модели рекомендуется использовать функцию SUMMARIZECOLUMNSorSUMMARIZE.

  • Эта функция not поддерживается для использования в режиме DirectQuery при использовании в вычисляемых столбцах or правилах безопасности на уровне строк (RLS).

С CURRENTGROUP

CURRENTGROUP можно использовать только в выражении, определяющем столбец расширения в функции GROUPBY. ВeffectCURRENTGROUP возвращает набор строк из аргумента таблицы GROUPBY, принадлежащих текущей строке результата GROUPBY. Функция CURRENTGROUP не принимает аргументы, and поддерживается только в качестве first аргумента одной из следующих функций агрегирования: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, SUMX, VARX.S, VARX.P.

Пример

В следующем примере first вычисляется общий объем продаж, сгруппированных по странам andproduct категории по физическим таблицам с помощью функции SUMMARIZECOLUMNS. Затем она использует функцию 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])  
)  

SUMMARIZE функции
SUMMARIZECOLUMNS функции