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