Поделиться через


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], содержащий сумму цен ("каждый List.Sum([цена])").

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

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"}
)