Partager via


GROUPBY

s’applique à :colonne calculéetable calculéeMeasurecalcul visuel

Note

Cette fonction est déconseillée pour une utilisation dans calculs visuels car elle retourne probablement des résultats sans signification.

La fonction GROUPBY est similaire à la fonction SUMMARIZE. Toutefois, GROUPBY fait not effectuer une CALCULATE implicite pour toutes les colonnes d’extension qu’il ajoute. GROUPBY permet à une nouvelle fonction, CURRENTGROUP, d’être utilisée dans les fonctions d’agrégation dans les colonnes d’extension qu’elle ajoute. GROUPBY est utilisé pour effectuer plusieurs agrégations dans une analyse de table unique.

Syntaxe

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

Paramètres

Terme Définition
table Toute expression DAX qui retourne une table de données.
groupBy_columnName Nom d’une colonne existante dans la table (or dans une table related), par laquelle les données doivent être regroupées. Ce paramètre ne peut pas être une expression.
name Nom donné à une nouvelle colonne qui est ajoutée à la liste des colonnes GroupBy, entre guillemets doubles.
expression Une des fonctions d’agrégation X avec l’argument firstCURRENTGROUP(). Consultez la section With CURRENTGROUP ci-dessous pour obtenir la liste complète des fonctions d’agrégation X prises en charge.

Retourner value

Tableau avec les colonnes sélectionnées pour les arguments groupBy_columnName and les colonnes d’extension désignées par les arguments de nom.

Remarques

  • La fonction GROUPBY effectue les opérations suivantes :

    1. Commencez par la table spécifiée (andallrelated tables dans la direction « to-one »).

    2. Créez un regroupement à l’aide de all des colonnes GroupBy (qui sont requises pour exister dans la table à partir de l’étape 1.).

    3. Chaque groupe est une ligne dans le résultat, mais représente un ensemble de lignes dans la table d’origine.

    4. Pour chaque groupe, evaluate les colonnes d’extension ajoutées. Contrairement à la fonction SUMMARIZE, une CALCULATE implicite est not effectuée, and le groupe n’est pas placé dans le contexte filter.

  • Chaque colonne pour laquelle vous define un nom doit avoir une expression correspondante ; sinon, une error est retournée. L’argument first, le nom, définit le nom de la colonne dans les résultats. L’argument second, expression, définit le calcul effectué pour obtenir le value de chaque ligne de cette colonne.

  • groupBy_columnName doit être dans la table or dans une table related.

  • Chaque nom doit être placé entre guillemets doubles.

  • La fonction regroupe un ensemble de lignes sélectionné dans un ensemble de lignes récapitulatives par le values d’une or plus de colonnes groupBy_columnName. Une ligne est retournée pour chaque groupe.

  • GROUPBY est principalement utilisé pour effectuer des agrégations sur des résultats intermédiaires à partir d’expressions de table DAX. Pour des agrégations efficaces sur des tables physiques dans le modèle, envisagez d’utiliser SUMMARIZECOLUMNSorSUMMARIZE fonction.

  • Cette fonction est not prise en charge pour une utilisation en mode DirectQuery lorsqu’elle est utilisée dans les colonnes calculées or règles de sécurité au niveau des lignes (RLS).

Avec CURRENTGROUP

CURRENTGROUP ne peut être utilisé que dans une expression qui définit une colonne d’extension dans la fonction GROUPBY. In-effect, CURRENTGROUP retourne un ensemble de lignes de l’argument de table de GROUPBY qui appartiennent à la ligne actuelle du résultat GROUPBY. La fonction CURRENTGROUP n’accepte aucun argument and n’est prise en charge que comme argument first à l’une des fonctions d’agrégation suivantes : AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.

Exemple

L’exemple suivant first calcule le total des ventes regroupées par pays andproduct catégorie sur les tables physiques à l’aide de la fonction SUMMARIZECOLUMNS. Il utilise ensuite la fonction GROUPBY pour analyser le résultat intermédiaire de l’étape first pour find les ventes maximales dans chaque pays dans les catégories product.

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 fonctionSUMMARIZECOLUMNS fonction