Delen via


GROUPBY

Van toepassing op: Berekende kolomBerekende tabelMetingVisuele berekening

Notitie

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

De functie GROUPBY is vergelijkbaar met de functie SUMMARIZE . GROUPBY voert echter geen impliciete CALCULATE uit voor uitbreidingskolommen die worden toegevoegd. MET GROUPBY kan een nieuwe functie, CURRENTGROUP, worden gebruikt 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 Dax-expressies die een tabel met gegevens retourneren.
groupBy_columnName De naam van een bestaande kolom in de tabel (of in een gerelateerde tabel) waarmee de gegevens moeten worden gegroepeerd. Deze parameter kan geen expressie zijn.
naam De naam die wordt gegeven aan een nieuwe kolom die wordt toegevoegd aan de lijst met GroupBy-kolommen, tussen dubbele aanhalingstekens.
Expressie Een van de X-aggregatiefuncties waarbij het eerste argument CURRENTGROUP() is. Zie de sectie CurrentGROUP hieronder voor de volledige lijst met ondersteunde X-aggregatiefuncties.

Retourwaarde

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

Opmerkingen

  • De functie GROUPBY doet het volgende:

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

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

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

    4. Evalueer voor elke groep de extensiekolommen die worden toegevoegd. In tegenstelling tot de functie SUMMARIZE wordt er geen impliciete CALCULATE uitgevoerd en wordt de groep niet in de filtercontext geplaatst.

  • Elke kolom waarvoor u een naam definieert, moet een bijbehorende expressie hebben; anders wordt er een fout geretourneerd. Het eerste argument, de naam, definieert de naam van de kolom in de resultaten. Het tweede argument, expressie, definieert de berekening die wordt uitgevoerd om de waarde voor elke rij in die kolom te verkrijgen.

  • groupBy_columnName moet zich in een tabel of in een gerelateerde tabel bevinden.

  • Elke naam moet tussen dubbele aanhalingstekens staan.

  • De functie groepeert een geselecteerde set rijen in een set samenvattingsrijen op basis van de waarden van een of 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 de functie SUMMARIZECOLUMNS of SUMMARIZE gebruiken.

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

Met CURRENTGROUP

CURRENTGROUP kan alleen worden gebruikt in een expressie die een extensiekolom definieert binnen de functie GROUPBY. In feite retourneert 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 en wordt alleen ondersteund als het eerste argument voor een van de volgende aggregatiefuncties: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX. S, STDEVX. P, SUMX, VARX. S, VARX. P.

Opmerking

In het volgende voorbeeld wordt eerst de totale verkoop berekend die is gegroepeerd op land en productcategorie boven fysieke tabellen met behulp van de functie SUMMARIZECOLUMNS . Vervolgens wordt de functie GROUPBY gebruikt om het tussenliggende resultaat uit de eerste stap te scannen om de maximale verkoop in elk land in de productcategorieën te vinden.

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