GROUPBY
Dotyczy:kolumna obliczeniowa
tabela obliczeniowa
Miara
wizualizacji
Nuta
Ta funkcja jest zniechęcana do użycia w obliczeniach wizualizacji , ponieważ prawdopodobnie zwraca wyniki bez znaczenia.
Funkcja GROUPBY jest podobna do funkcji SUMMARIZE. Jednak GROUPBY nie wykonuje niejawnych CALCULATE dla dodawanych kolumn rozszerzeń. GROUPBY zezwala na używanie nowej funkcji CURRENTGROUPw funkcjach agregacji w dodawanych kolumnach rozszerzeń. GROUPBY służy do przeprowadzania wielu agregacji w jednym skanowaniu tabel.
Składnia
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
Parametry
Termin | Definicja |
---|---|
table |
Dowolne wyrażenie DAX zwracające tabelę danych. |
groupBy_columnName |
Nazwa istniejącej kolumny w tabeli (lub w powiązanej tabeli), według której dane mają być pogrupowane. Ten parametr nie może być wyrażeniem. |
name |
Nazwa nadana nowej kolumnie, która jest dodawana do listy kolumn GroupBy, ujęta w cudzysłowy. |
expression |
Jedna z funkcji agregacji X z pierwszym argumentem jest CURRENTGROUP(). Zobacz sekcję Z CURRENTGROUP poniżej, aby uzyskać pełną listę obsługiwanych funkcji agregacji X. |
Wartość zwracana
Tabela z wybranymi kolumnami argumentów groupBy_columnName i kolumnami rozszerzenia wyznaczonymi przez argumenty nazw.
Uwagi
Funkcja GROUPBY wykonuje następujące czynności:
Zacznij od określonej tabeli (i wszystkich powiązanych tabel w kierunku "do jednego").
Utwórz grupowanie przy użyciu wszystkich kolumn Grupuj według (które są wymagane do istnienia w tabeli z kroku 1.).
Każda grupa jest jednym wierszem w wyniku, ale reprezentuje zestaw wierszy w oryginalnej tabeli.
Dla każdej grupy oceń dodawane kolumny rozszerzeń. W przeciwieństwie do funkcji SUMMARIZE nie jest wykonywana implikowane CALCULATE, a grupa nie jest umieszczana w kontekście filtru.
Każda kolumna, dla której definiujesz nazwę, musi mieć odpowiednie wyrażenie; w przeciwnym razie zwracany jest błąd. Pierwszy argument, name, definiuje nazwę kolumny w wynikach. Drugi argument, wyrażenie, definiuje obliczenia wykonywane w celu uzyskania wartości dla każdego wiersza w tej kolumnie.
groupBy_columnName
musi znajdować się w tabeli lub w powiązanej tabeli.Każda nazwa musi być ujęta w znaki podwójnego cudzysłowu.
Funkcja grupuje wybrany zestaw wierszy w zestaw wierszy podsumowania według wartości co najmniej jednej groupBy_columnName kolumn. Jeden wiersz jest zwracany dla każdej grupy.
GROUPBY służy głównie do wykonywania agregacji na podstawie wyników pośrednich z DAX wyrażeń tabeli. Aby uzyskać wydajne agregacje w tabelach fizycznych w modelu, rozważ użycie funkcji SUMMARIZECOLUMNS lub SUMMARIZE.
Ta funkcja nie jest obsługiwana w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych lub regułach zabezpieczeń na poziomie wiersza.
Z CURRENTGROUP
CURRENTGROUP można użyć tylko w wyrażeniu definiującym kolumnę rozszerzenia w funkcji GROUPBY. W efekcie CURRENTGROUP zwraca zestaw wierszy z argumentu tabeli GROUPBY należących do bieżącego wiersza wyniku GROUPBY. Funkcja CURRENTGROUP nie przyjmuje żadnych argumentów i jest obsługiwana tylko jako pierwszy argument do jednej z następujących funkcji agregacji: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Przykład
Poniższy przykład najpierw oblicza łączną sprzedaż pogrupowaną według kraju i kategorii produktów w tabelach fizycznych przy użyciu funkcji SUMMARIZECOLUMNS. Następnie używa funkcji GROUPBY do skanowania wyniku pośredniego z pierwszego kroku w celu znalezienia maksymalnej sprzedaży w każdym kraju w różnych kategoriach produktów.
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])
)
Powiązana zawartość
funkcji