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