GROUPBY

Применяется к:вычисляемой таблице вычисляемой таблицы Вычисление визуального элемента измерениявычисляемой таблицы

Примечание.

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

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

Синтаксис

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

Параметры

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

Возвращаемое значение

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

Замечания

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

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

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

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

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

  • Каждый столбец, для которого определяется имя, должно иметь соответствующее выражение; в противном случае возвращается ошибка. Первый аргумент, имя, определяет имя столбца в результатах. Второй аргумент, выражение, определяет вычисление, выполняемое для получения значения для каждой строки в этом столбце.

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

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

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

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

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

С ПОМОЩЬЮ CURRENTGROUP

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

Пример

В следующем примере сначала вычисляется общий объем продаж, сгруппированных по странам и категориям продуктов по физическим таблицам, с помощью функции SUMMARIZECOLUMNS . Затем функция GROUPBY используется для сканирования промежуточного результата первого шага, чтобы найти максимальное количество продаж в каждой стране по категориям продуктов.

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