Перейти к основному содержимому

Table.Group

Группирует в таблице строки, содержащие одинаковый ключ.

Syntax

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

Remarks

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

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

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

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

Examples

Example #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])}
)

Result:

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

Category

Table.Transformation