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 ein groupKind
GroupKind.Local bereitgestellt 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])}
)
Output
Table.FromRecords(
{
[CustomerID = 1, total = 30],
[CustomerID = 2, total = 30],
[CustomerID = 3, total = 25]
},
{"CustomerID", "total"}
)