Dela via


GROUPBY

gäller för:beräknad kolumnberäknad tabellMåttVisuell beräkning

Not

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. Men GROUPBY gör ingen implicit CALCULATE för tilläggskolumner som läggs till. GROUPBY tillåter att en ny funktion, CURRENTGROUP, används i sammansättningsfunktioner 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

Term 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.
expression En av X-sammansättningsfunktionerna där det första argumentet är CURRENTGROUP(). I avsnittet Med CURRENTGROUP nedan finns en fullständig lista över X-aggregeringsfunktioner 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.

Anmärkningar

  • 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. För 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 för GROUPBY som tillhör den aktuella raden i det GROUPBY resultatet. Funktionen CURRENTGROUP tar inga argument och stöds bara 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 maximal försäljning 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])
)

SUMMARIZE funktionSUMMARIZECOLUMNS funktion