Udostępnij za pośrednictwem


GROUPBY

Dotyczy:kolumna obliczeniowatabela obliczeniowaMiarawizualizacji

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:

    1. Zacznij od określonej tabeli (i wszystkich powiązanych tabel w kierunku "do jednego").

    2. Utwórz grupowanie przy użyciu wszystkich kolumn Grupuj według (które są wymagane do istnienia w tabeli z kroku 1.).

    3. Każda grupa jest jednym wierszem w wyniku, ale reprezentuje zestaw wierszy w oryginalnej tabeli.

    4. 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])
)

funkcji