GROUPBY

Gäller för:Beräknad kolumnBeräknad tabellMåttVisuell beräkning

Kommentar

Den här funktionen rekommenderas inte för användning i visuella beräkningar eftersom den sannolikt returnerar meningslösa resultat.

Funktionen GROUPBY liknar funktionen SUMMARIZE . GROUPBY utför dock ingen implicit CALCULATE för tilläggskolumner som läggs till. GROUPBY tillåter att en ny funktion, CURRENTGROUP, används i aggregeringsfunktioner i tilläggskolumnerna som den lägger till. GROUPBY används för att utföra flera aggregeringar i en enda tabellgenomsökning.

Syntax

GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])

Parametrar

Period Definition
table Alla DAX-uttryck som returnerar en datatabell.
groupBy_columnName Namnet på en befintlig kolumn i tabellen (eller i en relaterad tabell) med vilken data ska grupperas. Den här parametern kan inte vara ett uttryck.
name Namnet på en ny kolumn som läggs till i listan med GroupBy-kolumner, omgivet av dubbla citattecken.
Uttryck En av X-aggregeringsfunktionerna där det första argumentet är CURRENTGROUP(). Se avsnittet Med CURRENTGROUP nedan för den fullständiga listan över X-sammansättningsfunktioner som stöds.

Returvärde

En tabell med de valda kolumnerna för de groupBy_columnName argumenten och de tilläggskolumner som anges av namnargumenten.

Kommentarer

  • Funktionen GROUPBY gör följande:

    1. Börja med den angivna tabellen (och alla relaterade tabeller i "till-en"-riktningen).

    2. Skapa en gruppering med alla GroupBy-kolumner (som krävs för att finnas i tabellen från steg 1.).

    3. Varje grupp är en rad i resultatet, men representerar en uppsättning rader i den ursprungliga tabellen.

    4. Utvärdera tilläggskolumnerna som läggs till för varje grupp. Till skillnad från funktionen SUMMARIZE utförs inte en underförstådd CALCULATE och gruppen placeras inte i filterkontexten.

  • Varje kolumn som du definierar ett namn för måste ha ett motsvarande uttryck. annars returneras ett fel. Det första argumentet, name, definierar namnet på kolumnen i resultatet. Det andra argumentet, uttryck, definierar beräkningen som utförs för att hämta värdet för varje rad i kolumnen.

  • groupBy_columnName måste vara antingen i tabellen eller i en relaterad tabell.

  • Varje namn måste omges av dubbla citattecken.

  • Funktionen grupperar en vald uppsättning rader i en uppsättning sammanfattningsrader efter värdena för en eller flera groupBy_columnName kolumner. En rad returneras för varje grupp.

  • GROUPBY används främst för att utföra aggregeringar över mellanliggande resultat från DAX-tabelluttryck. Om du vill ha effektiva aggregeringar över fysiska tabeller i modellen bör du överväga att använda funktionen SUMMARIZECOLUMNS eller SUMMARIZE .

  • Den här funktionen stöds inte för användning i DirectQuery-läge när den används i beräknade kolumner eller säkerhetsregler på radnivå (RLS).

Med CURRENTGROUP

CURRENTGROUP kan bara användas i ett uttryck som definierar en tilläggskolumn i funktionen GROUPBY. I praktiken returnerar CURRENTGROUP en uppsättning rader från tabellargumentet i GROUPBY som tillhör den aktuella raden i GROUPBY-resultatet. Funktionen CURRENTGROUP tar inga argument och stöds endast som det första argumentet till någon av följande sammansättningsfunktioner: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX. S, STDEVX. P, SUMX, VARX. S, VARX. P.

Exempel

I följande exempel beräknas först den totala försäljningen grupperad efter land och produktkategori över fysiska tabeller med hjälp av funktionen SUMMARIZECOLUMNS . Den använder sedan funktionen GROUPBY för att genomsöka det mellanliggande resultatet från det första steget för att hitta den maximala försäljningen i varje land i produktkategorierna.

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

Funktionen SUMMARIZE
Funktionen SUMMARIZECOLUMNS