Compartilhar via


Table.Group

Sintaxe

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

Sobre

Agrupa as linhas de table pelas colunas de chave definidas por key. key pode ser um único nome de coluna ou uma lista de nomes de coluna. Para cada grupo, é construído um registro contendo as colunas de chave (e seus valores) com as colunas agregadas especificadas por aggregatedColumns. Opcionalmente, também é possível especificar groupKind e comparer.

Se os dados já estiverem classificados pelas colunas de chave, um groupKind de GroupKind.Local poderá ser fornecido. Isso pode melhorar o desempenho do agrupamento em certos casos, já que todas as linhas com um determinado conjunto de valores de chave são consideradas contíguas.

Ao passar comparer, observe que, se isso tratar chaves diferentes como iguais, uma linha poderá ser colocada em um grupo cujas chaves sejam diferentes.

Essa função não garante a ordenação das linhas que ela retorna.

Exemplo 1

Agrupar a tabela adicionando uma coluna agregada [total] que contém a soma de preços ("each List.Sum([price])").

Usage

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

Saída

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