Lezen in het Engels

Delen via


GROUPBY

Van toepassing op:berekende kolomberekende tabelMeasureVisuele berekening

Notitie

Deze functie wordt afgeraden voor gebruik in visuele berekeningen omdat deze waarschijnlijk betekenisloze resultaten oplevert.

De GROUPBY-functie is vergelijkbaar met de functie SUMMARIZE. GROUPBY voert echter not een impliciete CALCULATE uit voor eventuele uitbreidingskolommen die worden toegevoegd. GROUPBY maakt het mogelijk om een nieuwe functie, CURRENTGROUP, te gebruiken in aggregatiefuncties in de extensiekolommen die worden toegevoegd. GROUPBY wordt gebruikt om meerdere aggregaties uit te voeren in één tabelscan.

Syntaxis

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

Parameters

Term Definitie
table Elke DAX-expressie die een tabel met gegevens retourneert.
groupBy_columnName De naam van een bestaande kolom in de tabel (or in een related tabel)) waarmee de gegevens moeten worden gegroepeerd. Deze parameter kan geen expressie zijn.
name De naam die wordt gegeven aan een nieuwe kolom die wordt toegevoegd aan de lijst met GroupBy kolommen, tussen dubbele aanhalingstekens.
expression Een van de X-aggregatiefuncties waarbij het argument first wordt CURRENTGROUP(). Zie de sectie Met CURRENTGROUP hieronder voor de volledige lijst met ondersteunde X-aggregatiefuncties.

value retourneren

Een tabel met de geselecteerde kolommen voor de groupBy_columnName argumenten and de extensiekolommen die zijn aangewezen door de naamargumenten.

Opmerkingen

  • De functie GROUPBY doet het volgende:

    1. Begin met de opgegeven tabel (andallrelated tabellen in de richting 'naar één').

    2. Maak een groepering met behulp van all van de GroupBy kolommen (die uit stap 1 in de tabel moeten bestaan).

    3. Elke groep is één rij in het resultaat, maar vertegenwoordigt een set rijen in de oorspronkelijke tabel.

    4. Voor elke groep evaluate de extensiekolommen die worden toegevoegd. In tegenstelling tot de SUMMARIZE-functie wordt een impliciete CALCULATEnot uitgevoerd, and de groep niet in de filter context wordt geplaatst.

  • Elke kolom waarvoor u een naam define, moet een bijbehorende expressie hebben; anders wordt een error geretourneerd. Het argument first, naam, definieert de naam van de kolom in de resultaten. Het argument second, expressie, definieert de berekening die wordt uitgevoerd om de value te verkrijgen voor elke rij in die kolom.

  • groupBy_columnName moet zich in een tabel or in een related tabel bevinden.

  • Elke naam moet tussen dubbele aanhalingstekens staan.

  • De functie groepeert een geselecteerde set rijen in een set samenvattingsrijen op basis van de values van een or meer groupBy_columnName kolommen. Er wordt één rij geretourneerd voor elke groep.

  • GROUPBY wordt voornamelijk gebruikt om aggregaties uit te voeren op tussenliggende resultaten van DAX tabelexpressies. Voor efficiënte aggregaties over fysieke tabellen in het model kunt u overwegen SUMMARIZECOLUMNSorSUMMARIZE functie te gebruiken.

  • Deze functie wordt not ondersteund voor gebruik in de DirectQuery-modus wanneer deze wordt gebruikt in berekende kolommen or regels voor beveiliging op rijniveau (RLS).

Met CURRENTGROUP

CURRENTGROUP kan alleen worden gebruikt in een expressie waarmee een extensiekolom in de GROUPBY-functie wordt gedefinieerd. In-effectretourneert CURRENTGROUP een set rijen uit het tabelargument van GROUPBY die deel uitmaken van de huidige rij van het GROUPBY resultaat. De functie CURRENTGROUP heeft geen argumenten and wordt alleen ondersteund als het argument first voor een van de volgende aggregatiefuncties: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.

Voorbeeld

In het volgende voorbeeld wordt first de totale omzet berekend die is gegroepeerd op land andproduct categorie ten opzichte van fysieke tabellen met behulp van de functie SUMMARIZECOLUMNS. Vervolgens wordt de functie GROUPBY gebruikt om het tussenliggende resultaat uit de first stap te scannen om de maximale verkoop in elk land in de product categorieën te find.

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 functie
SUMMARIZECOLUMNS functie