Table.Group

Синтаксис

Table.Group(table as table, key as any, aggregatedColumns as list, optional groupKind as nullable number, optional comparer as nullable function) as table

Сведения

Группирует строки table по ключевым столбцам, определенным в key. key может быть именем одного столбца или списком имен столбцов. Для каждой группы создается запись, содержащая ключевые столбцы (и их значения) вместе со всеми агрегированными столбцами, заданными aggregatedColumns. При необходимости также можно указать groupKind и comparer.

Если данные уже отсортированы по ключевым столбцам, можно указать groupKind GroupKind.Local Это может повысить производительность группирования в некоторых случаях, так как все строки с заданным набором ключевых значений считаются непрерывными.

При передаче comparer обратите внимание, что, если разные ключи обрабатываются как равные, строка может быть помещена в группу, ключи которой отличаются друг от друга.

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

Пример 1

Группирование таблицы путем добавления агрегированного столбца [total] с суммой цен (each List.Sum([price])).

Использование

Table.Group(
    Table.FromRecords({
        [CustomerID = 1, price = 20],
        [CustomerID = 2, price = 10],
        [CustomerID = 2, price = 20],
        [CustomerID = 1, price = 10],
        [CustomerID = 3, price = 20],
        [CustomerID = 3, price = 5]
    }),
    "CustomerID",
    {"total", each List.Sum([price])}
)

Выходные данные

Table.FromRecords(
    {
        [CustomerID = 1, total = 30],
        [CustomerID = 2, total = 30],
        [CustomerID = 3, total = 25]
    },
    {"CustomerID", "total"}
)