GROUPBY
Ισχύει για:Υπολογιζόμενη στήλη
Υπολογιζόμενος πίνακας
Μέτρηση
υπολογισμού απεικόνισης
Σημείωση
Αυτή η συνάρτηση δεν συνιστάται να χρησιμοποιηθεί σε υπολογισμούς απεικονίσεων καθώς πιθανώς επιστρέφει ανούσια αποτελέσματα.
Η συνάρτηση GROUPBY είναι παρόμοια με τη συνάρτηση SUMMARIZE. Ωστόσο, GROUPBY δεν χρησιμοποιεί έμμεσα CALCULATE για τυχόν στήλες επέκτασης που προσθέτει. GROUPBY επιτρέπει σε μια νέα συνάρτηση, CURRENTGROUP, να χρησιμοποιηθεί μέσα σε συναρτήσεις συνάθροισης στις στήλες επέκτασης που προσθέτει. GROUPBY χρησιμοποιείται για την εκτέλεση πολλαπλών συναθροίσεων σε μία σάρωση πίνακα.
Σύνταξη
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
Παραμέτρους
Όρος | Ορισμός |
---|---|
table |
Οποιαδήποτε DAX παράσταση που επιστρέφει έναν πίνακα δεδομένων. |
groupBy_columnName |
Το όνομα μιας υπάρχουσας στήλης στον πίνακα (ή σε έναν σχετιζόμενο πίνακα), κατά το οποίο τα δεδομένα θα ομαδοποιηθούν. Αυτή η παράμετρος δεν μπορεί να είναι παράσταση. |
name |
Το όνομα που δίνεται σε μια νέα στήλη που προστίθεται στη λίστα των στηλών GroupBy, μέσα σε διπλά εισαγωγικά. |
expression |
Μία από τις συναρτήσεις συνάθροισης X με το πρώτο όρισμα να είναι CURRENTGROUP(). Ανατρέξτε στην ενότητα Με CURRENTGROUP παρακάτω για την πλήρη λίστα των υποστηριζόμενων συναρτήσεων συνάθροισης X. |
Τιμή επιστροφής
Ένας πίνακας με τις επιλεγμένες στήλες για τα groupBy_columnName ορίσματα και τις στήλες επέκτασης που ορίζονται από τα ορίσματα ονόματος.
Παρατηρήσεις
Η συνάρτηση GROUPBY κάνει τα εξής:
Ξεκινήστε με τον καθορισμένο πίνακα (και όλους τους σχετικούς πίνακες στην κατεύθυνση "προς ένα").
Δημιουργήστε μια ομαδοποίηση χρησιμοποιώντας όλες τις στήλες Ομαδοποίηση_κατά (οι οποίες απαιτείται να υπάρχουν στον πίνακα από το βήμα #1.).
Κάθε ομάδα είναι μία γραμμή στο αποτέλεσμα, αλλά αντιπροσωπεύει ένα σύνολο γραμμών στον αρχικό πίνακα.
Για κάθε ομάδα, αξιολογήστε τις στήλες επέκτασης που προστίθενται. Σε αντίθεση με τη συνάρτηση SUMMARIZE, δεν εκτελείται μια σιωπηρή CALCULATE και η ομάδα δεν τοποθετείται στο περιβάλλον φίλτρου.
Κάθε στήλη για την οποία ορίζετε ένα όνομα πρέπει να έχει μια αντίστοιχη παράσταση. Διαφορετικά, επιστρέφεται σφάλμα. Το πρώτο όρισμα, το όνομα, ορίζει το όνομα της στήλης στα αποτελέσματα. Το δεύτερο όρισμα, η παράσταση, ορίζει τον υπολογισμό που εκτελέστηκε για να ληφθεί η τιμή για κάθε γραμμή αυτής της στήλης.
groupBy_columnName
πρέπει να βρίσκονται είτε σε πίνακα είτε σε σχετιζόμενο πίνακα.Κάθε όνομα πρέπει να περικλείεται σε διπλά εισαγωγικά.
Η συνάρτηση ομαδοποιεί ένα επιλεγμένο σύνολο γραμμών σε ένα σύνολο γραμμών σύνοψης σύμφωνα με τις τιμές μίας ή περισσότερων groupBy_columnName στηλών. Επιστρέφεται μία γραμμή για κάθε ομάδα.
GROUPBY χρησιμοποιείται κυρίως για την εκτέλεση συναθροίσεων μέσω ενδιάμεσων αποτελεσμάτων από DAX παραστάσεις πίνακα. Για αποτελεσματικές συναθροίσεις σε φυσικούς πίνακες στο μοντέλο, εξετάστε το ενδεχόμενο να χρησιμοποιήσετε SUMMARIZECOLUMNS ή SUMMARIZE συνάρτηση.
Αυτή η συνάρτηση δεν υποστηρίζεται για χρήση σε λειτουργία DirectQuery όταν χρησιμοποιείται σε υπολογιζόμενες στήλες ή σε κανόνες ασφάλειας σε επίπεδο γραμμών (RLS).
Με CURRENTGROUP
CURRENTGROUP μπορεί να χρησιμοποιηθεί μόνο σε μια παράσταση που ορίζει μια στήλη επέκτασης εντός της συνάρτησης GROUPBY. Με αυτόν τον τρόπο, CURRENTGROUP επιστρέφει ένα σύνολο γραμμών από το όρισμα table του GROUPBY που ανήκουν στην τρέχουσα γραμμή του GROUPBY αποτελέσματος. Η συνάρτηση CURRENTGROUP δεν λαμβάνει ορίσματα και υποστηρίζεται μόνο ως πρώτο όρισμα σε μία από τις ακόλουθες συναρτήσεις συνάθροισης: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Παράδειγμα
Το παρακάτω παράδειγμα υπολογίζει πρώτα το σύνολο των πωλήσεων που ομαδοποιούνται κατά χώρα και κατηγορία προϊόντων σε φυσικούς πίνακες, χρησιμοποιώντας τη συνάρτηση SUMMARIZECOLUMNS. Στη συνέχεια, χρησιμοποιεί τη συνάρτηση GROUPBY για να ανιχνεύσει το ενδιάμεσο αποτέλεσμα από το πρώτο βήμα για την εύρεση των μέγιστων πωλήσεων σε κάθε χώρα σε όλες τις κατηγορίες προϊόντων.
DEFINE
VAR SalesByCountryAndCategory =
SUMMARIZECOLUMNS(
Geography[Country],
Product[Category],
"Total Sales", SUMX(Sales, Sales[Price] * Sales[Qty])
)
EVALUATE
GROUPBY(
SalesByCountryAndCategory,
Geography[Country],
"Max Sales", MAXX(CURRENTGROUP(), [Total Sales])
)
Σχετικό περιεχόμενο
συνάρτησης