Del via


GROUPBY

gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning

Notat

Denne funksjonen frarådes for bruk i visuelle beregninger da den sannsynligvis returnerer meningsløse resultater.

Funksjonen GROUPBY ligner på SUMMARIZE-funksjonen. GROUPBY gjør imidlertid not en implisitt CALCULATE for eventuelle utvidelseskolonner som den legger til. GROUPBY tillater at en ny funksjon, CURRENTGROUP, brukes i aggregasjonsfunksjoner i utvidelseskolonnene den legger til. GROUPBY brukes til å utføre flere aggregasjoner i én enkelt tabellskanning.

Syntaks

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

Parametere

Vilkår Definisjon
table Alle DAX uttrykk som returnerer en tabell med data.
groupBy_columnName Navnet på en eksisterende kolonne i tabellen (or i en related tabell) som dataene skal grupperes etter. Denne parameteren kan ikke være et uttrykk.
name Navnet som gis til en ny kolonne som legges til i listen over GroupBy kolonner, omsluttet av doble anførselstegn.
expression Én av X-aggregasjonsfunksjonene der argumentet first er CURRENTGROUP(). Se Inndelingen Med CURRENTGROUP nedenfor for å se den fullstendige listen over støttede X-aggregasjonsfunksjoner.

Returner value

En tabell med de valgte kolonnene for groupBy_columnName-argumentene and utvidelseskolonnene som er angitt av navneargumentene.

Merknader

  • Funksjonen GROUPBY gjør følgende:

    1. Start med den angitte tabellen (andallrelated tabeller i «til-én»-retningen).

    2. Opprett en gruppering ved hjelp av all av de GroupBy kolonnene (som kreves for å finnes i tabellen fra trinn 1.).

    3. Hver gruppe er én rad i resultatet, men representerer et sett med rader i den opprinnelige tabellen.

    4. For hver gruppe evaluate utvidelseskolonnene som legges til. I motsetning til SUMMARIZE-funksjonen utføres en underforstått CALCULATEnot, and gruppen ikke plasseres i filter konteksten.

  • Hver kolonne du define et navn for, må ha et tilsvarende uttrykk. Ellers returneres en error. Argumentet first, navn, definerer navnet på kolonnen i resultatene. Argumentet second, uttrykk, definerer beregningen som utføres for å hente value for hver rad i denne kolonnen.

  • groupBy_columnName må være enten i tabell or i en related tabell.

  • Hvert navn må stå i doble anførselstegn.

  • Funksjonen grupperer et merket sett med rader i et sett med sammendragsrader etter values av én or flere groupBy_columnName kolonner. Én rad returneres for hver gruppe.

  • GROUPBY brukes hovedsakelig til å utføre aggregasjoner over mellomliggende resultater fra DAX tabelluttrykk. Hvis du vil ha effektive aggregasjoner over fysiske tabeller i modellen, kan du vurdere å bruke SUMMARIZECOLUMNSorSUMMARIZE-funksjonen.

  • Denne funksjonen støttes not for bruk i DirectQuery-modus når den brukes i beregnede kolonner or regler for sikkerhet på radnivå (RLS).

Med CURRENTGROUP

CURRENTGROUP kan bare brukes i et uttrykk som definerer en utvidelseskolonne i GROUPBY-funksjonen. I-effectreturnerer CURRENTGROUP et sett med rader fra tabellargumentet i GROUPBY som tilhører gjeldende rad i GROUPBY resultat. Funksjonen CURRENTGROUP tar ingen argumenter and støttes bare som argumentet first til én av følgende aggregasjonsfunksjoner: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.

Eksempel

Eksemplet nedenfor first beregner totalt salg gruppert etter land andproduct kategori over fysiske tabeller ved hjelp av SUMMARIZECOLUMNS-funksjonen. Den bruker deretter GROUPBY-funksjonen til å skanne mellomresultatet fra first trinn for å find maksimalt salg i hvert land i de product kategoriene.

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 funksjonSUMMARIZECOLUMNS funksjon