Table.Group
Σύνταξη
Table.Group(table as table, key as any, aggregatedColumns as list, optional groupKind as nullable number, optional comparer as nullable function) as table
Πληροφορίες
Ομαδοποιεί τις γραμμές του table
από τις στήλες κλειδιού που ορίζονται από key
το . Το key
μπορεί να είναι είτε ένα όνομα μοναδικής στήλης, είτε μια λίστα ονομάτων στηλών. Για κάθε ομάδα, δημιουργείται μια εγγραφή που περιέχει τις στήλες κλειδιών (και τις τιμές τους), μαζί με τυχόν συγκεντρωτικές στήλες που καθορίζονται από το aggregatedColumns
. Προαιρετικά, groupKind
μπορούν επίσης να καθοριστούν οι και comparer
.
Εάν τα δεδομένα είναι ήδη ταξινομημένα με βάση τις στήλες κλειδιού, τότε μπορεί να παρασχεθεί μια groupKind
GroupKind.Local. Αυτό μπορεί να βελτιώσει την απόδοση της ομαδοποίησης σε ορισμένες περιπτώσεις, δεδομένου ότι όλες οι γραμμές με ένα δεδομένο σύνολο τιμών κλειδιών θεωρούνται συνεχόμενες.
Κατά τη διαβίβαση μιας comparer
, σημειώστε ότι εάν αντιμετωπίζει διαφορετικά κλειδιά ως ίσα, μπορεί να τοποθετηθεί μια γραμμή σε μια ομάδα της οποίας τα κλειδιά διαφέρουν από τα δικά της.
Αυτή η συνάρτηση δεν εγγυάται τη σειρά των γραμμών που επιστρέφει.
Παράδειγμα 1
Ομαδοποιήστε τον πίνακα προσθέτοντας μια συγκεντρωτική στήλη [total] η οποία περιέχει το άθροισμα των τιμών ("κάθε 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])}
)
Έξοδος
Table.FromRecords(
{
[CustomerID = 1, total = 30],
[CustomerID = 2, total = 30],
[CustomerID = 3, total = 25]
},
{"CustomerID", "total"}
)