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