Saltar para o conteúdo principal

Table.Group

Agrupa as linhas da tabela que tenham a mesma chave.

Syntax

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

Remarks

Agrupa as linhas de table pelas colunas-chave definidas por key. O key pode ser um nome de uma única coluna, ou uma lista de nomes de colunas. Para cada grupo, é construído um registo contendo as colunas-chave (e os seus valores), juntamente com quaisquer colunas agregadas especificadas por aggregatedColumns. Opcionalmente, groupKind e comparer também podem ser especificados.

Se os dados já estiverem ordenados por colunas-chave, então pode ser fornecida uma groupKind do GroupKind.Local. Isto pode melhorar o desempenho do agrupamento em certos casos, uma vez que todas as linhas com um determinado conjunto de valores-chave são assumidas como contíguas.

Ao passar uma comparer, note que se a mesma tratar chaves diferentes como sendo iguais, pode ser colocada uma linha num grupo cujas chaves diferem das suas.

Esta função não garante a ordenação das linhas que devolve.

Examples

Example #1

Agrupar a tabela, adicionando uma coluna agregada [total] que contém a soma dos preços ("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