Share via


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