Del via


GROUPBY

Gælder for:Beregnet tabel beregningaf målingsvisualisering for en beregnet kolonne

Bemærk

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

Funktionen GROUPBY ligner 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, den tilføjer. 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

Begreb 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.
navn Det navn, der er givet til en ny kolonne, som føjes til listen over GroupBy-kolonner, omsluttet af dobbelte anførselstegn.
Udtryk 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 funktionen SUMMARIZECOLUMNS eller SUMMARIZE .

  • 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. CURRENTGROUP returnerer faktisk et sæt rækker fra tabelargumentet for GROUPBY, der tilhører den aktuelle række i GROUPBY-resultatet. Funktionen CURRENTGROUP tager ingen argumenter og understøttes kun som det første argument til 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 for fysiske tabeller 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])  
)  

Funktionen SUMMARIZE
Funktionen SUMMARIZECOLUMNS