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:
Zacznij od określonej tabeli (andallrelated tabele w kierunku "do jednego").
Utwórz grupowanie przy użyciu all kolumn GroupBy (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 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])
)
Related zawartości
funkcji