Del via


GROUPBY

gælder for:beregnet kolonneberegnet tabelberegning af målingvisualisering

Seddel

Denne funktion frarådes til brug i visuelle beregninger da den sandsynligvis returnerer meningsløse resultater.

Funktionen GROUPBY svarer til funktionen SUMMARIZE. GROUPBY udfører dog ikke en implicit CALCULATE for de udvidelseskolonner, der tilføjes. GROUPBY tillader, at en ny funktion, CURRENTGROUP, bruges i sammenlægningsfunktioner i de udvidelseskolonner, der tilføjes. GROUPBY bruges til at udføre flere sammenlægninger i en enkelt tabelscanning.

Syntaks

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

Parametre

Udtryk Definition
table Ethvert DAX udtryk, der returnerer en tabel med data.
groupBy_columnName Navnet på en eksisterende kolonne i tabellen (eller i en relateret tabel), som dataene skal grupperes efter. Denne parameter kan ikke være et udtryk.
name Det navn, der er givet til en ny kolonne, som føjes til listen over GroupBy-kolonner, omsluttet af dobbelte anførselstegn.
expression En af X-sammenlægningsfunktionerne, hvor det første argument er CURRENTGROUP(). Se afsnittet Med CURRENTGROUP nedenfor for at få en komplet liste over understøttede X-sammenlægningsfunktioner.

Returværdi

En tabel med de valgte kolonner for argumenterne groupBy_columnName og de udvidelseskolonner, der er angivet af navneargumenterne.

Bemærkninger

  • Funktionen GROUPBY gør følgende:

    1. Start med den angivne tabel (og alle relaterede tabeller i retningen "til-en").

    2. Opret en gruppering ved hjælp af alle GroupBy-kolonnerne (som skal findes i tabellen fra trin #1.).

    3. Hver gruppe er én række i resultatet, men repræsenterer et sæt rækker i den oprindelige tabel.

    4. For hver gruppe skal du evaluere de udvidelseskolonner, der tilføjes. I modsætning til funktionen SUMMARIZE udføres der ikke en implicit CALCULATE, og gruppen placeres ikke i filterkonteksten.

  • Hver kolonne, du definerer et navn for, skal have et tilsvarende udtryk. Ellers returneres der en fejl. Det første argument, name, definerer navnet på kolonnen i resultaterne. Det andet argument, udtryk, definerer den beregning, der udføres for at hente værdien for hver række i den pågældende kolonne.

  • groupBy_columnName skal enten være i tabellen eller i en relateret tabel.

  • Hvert navn skal være omsluttet af dobbelte anførselstegn.

  • Funktionen grupperer et markeret sæt rækker i et sæt oversigtsrækker efter værdierne for en eller flere groupBy_columnName kolonner. Der returneres én række for hver gruppe.

  • GROUPBY bruges primært til at udføre sammenlægninger af mellemliggende resultater fra DAX tabeludtryk. Hvis du vil have effektive sammenlægninger over fysiske tabeller i modellen, kan du overveje at bruge SUMMARIZECOLUMNS eller SUMMARIZE funktion.

  • Denne funktion understøttes ikke til brug i DirectQuery-tilstand, når den bruges i beregnede kolonner eller RLS-regler (row-level security).

Med CURRENTGROUP

CURRENTGROUP kan kun bruges i et udtryk, der definerer en udvidelseskolonne i funktionen GROUPBY. Faktisk returnerer CURRENTGROUP et sæt rækker fra tabelargumentet for GROUPBY, der tilhører den aktuelle række i GROUPBY resultat. Funktionen CURRENTGROUP bruger ingen argumenter og understøttes kun som det første argument i en af følgende sammenlægningsfunktioner: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.

Eksempel

I følgende eksempel beregnes det samlede salg grupperet efter land og produktkategori først ved hjælp af funktionen SUMMARIZECOLUMNS. Den bruger derefter funktionen GROUPBY til at scanne det mellemliggende resultat fra det første trin for at finde det maksimale salg i hvert land på tværs af produktkategorierne.

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