Del via


Table.Group

Syntaks

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

Om

Grupperer rækkerne i table efter de nøglekolonner, der er defineret af key. key kan enten være et enkelt kolonnenavn eller en liste over kolonnenavne. For hver gruppe oprettes en post, der indeholder nøglekolonnerne (og deres værdier) sammen med alle aggregerede kolonner, der er angivet af aggregatedColumns. Eventuelt og groupKind comparer kan også angives.

Hvis dataene allerede er sorteret efter nøglekolonnerne, kan der angives en groupKind af GroupKind.Local. Dette kan forbedre ydeevnen for gruppering i visse tilfælde, da alle rækker med et bestemt sæt nøgleværdier antages at være sammenhængende.

Når du overfører en comparer, skal du være opmærksom på, at hvis den behandler forskellige nøgler som lige, kan en række placeres i en gruppe, hvis nøgler adskiller sig fra deres egne.

Denne funktion garanterer ikke rækkefølgen af de rækker, den returnerer.

Eksempel 1

Gruppér tabellen ved at tilføje en aggregeringskolonne [total], som indeholder summen af priser ("hver List.Sum([price])").

Brug

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

Output

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