Freigeben über


Table.Group

Syntax

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

Info

Gruppiert die Zeilen von table nach den durch key definierten Schlüsselspalten. key kann entweder ein einzelner Spaltenname oder eine Liste mit Spaltennamen sein. Für jede Gruppe wird ein Datensatz erstellt, der die Schlüsselspalten (und deren Werte) zusammen mit allen durch aggregatedColumns angegebenen aggregierten Spalten enthält. Optional können zusätzlich groupKind und comparer angegeben werden.

Wenn die Daten bereits nach den Schlüsselspalten sortiert sind, kann als groupKind „GroupKind.Local“ angegeben werden. Dies kann in bestimmten Fällen die Leistung der Gruppierung verbessern, weil alle Zeilen mit einem bestimmten Satz von Schlüsselwerten als zusammenhängend betrachtet werden.

Beachten Sie beim Übergeben von comparer Folgendes: Wenn unterschiedliche Schlüssel als gleich behandelt werden, kann eine Zeile in einer Gruppe platziert werden, deren Schlüssel sich von ihren eigenen unterscheiden.

Diese Funktion garantiert nicht die Reihenfolge der zurückgegebenen Zeilen.

Beispiel 1

Gruppiert die Tabelle und fügt die aggregierte Spalte "[total]" hinzu, die die Summe der Preise ("each List.Sum([price])") enthält.

Verwendung

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

Ausgabe

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