Udostępnij za pośrednictwem


GROUPBY

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

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 wykonuje not niejawne CALCULATE dla wszystkich 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 (or w tabeli related), 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 argumentem first jest CURRENTGROUP(). Zobacz sekcję Z CURRENTGROUP poniżej, aby uzyskać pełną listę obsługiwanych funkcji agregacji X.

Zwracanie value

Tabela z wybranymi kolumnami argumentów groupBy_columnName and kolumn rozszerzenia wyznaczonych przez argumenty nazw.

Uwagi

  • Funkcja GROUPBY wykonuje następujące czynności:

    1. Zacznij od określonej tabeli (andallrelated tabele w kierunku "do jednego").

    2. Utwórz grupowanie przy użyciu all kolumn GroupBy (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 evaluate dodawane kolumny rozszerzenia. W przeciwieństwie do funkcji SUMMARIZECALCULATE jest wykonywana not, and grupa nie jest umieszczana w kontekście filter.

  • Każda kolumna, dla której define nazwa musi mieć odpowiednie wyrażenie; w przeciwnym razie zostanie zwrócony error. Argument first, name, definiuje nazwę kolumny w wynikach. Argument second wyrażenie definiuje obliczenia wykonywane w celu uzyskania value dla każdego wiersza w tej kolumnie.

  • groupBy_columnName musi znajdować się w tabeli or w tabeli related.

  • Każda nazwa musi być ujęta w znaki podwójnego cudzysłowu.

  • Funkcja grupuje wybrany zestaw wierszy w zestaw wierszy podsumowania według values jednej or więcej kolumn groupBy_columnName. 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 SUMMARIZECOLUMNSorSUMMARIZE.

  • Ta funkcja jest not obsługiwana do użycia w trybie DirectQuery w przypadku użycia w kolumnach obliczeniowych or reguł zabezpieczeń na poziomie wiersza.

Z CURRENTGROUP

CURRENTGROUP można użyć tylko w wyrażeniu definiującym kolumnę rozszerzenia w funkcji GROUPBY. effect CURRENTGROUP zwraca zestaw wierszy z argumentu tabeli GROUPBY należących do bieżącego wiersza wyniku GROUPBY. Funkcja CURRENTGROUP nie przyjmuje żadnych argumentów and jest obsługiwana tylko jako argument first 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 first oblicza łączną sprzedaż pogrupowaną według kraju andproduct kategorii na tabele fizyczne przy użyciu funkcji SUMMARIZECOLUMNS. Następnie używa funkcji GROUPBY do skanowania wyniku pośredniego z kroku first w celu find maksymalnej sprzedaży w każdym kraju w product kategoriach.

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