GROUPBY |
Groupé par |
| DAX (Data Analysis Expressions) |
Syntaxe
|
GROUPBY (table [, groupBy_columnName [, groupBy_columnName [, ...]]] [, name, expression [, name, expression [, ...]]])
|
Paramètres
| Nom |
Description |
| table |
Ce paramètre permet de spécifier la table à grouper selon les colonnes indiquées. |
| groupBy_columnName |
Ce paramètre permet de spécifier une ou plusieurs colonnes selon lesquelles les lignes seront regroupées. |
| name |
Ce paramètre permet de nommer une nouvelle colonne calculée dans le résultat du regroupement. |
| expression |
Ce paramètre permet de définir une expression à évaluer pour créer une nouvelle colonne dans le groupe résultant. |
Description
Cette fonction permet de grouper les lignes d'une table en fonction de colonnes spécifiées, sans effectuer d'agrégation implicite via CALCULATE.
Remarques
- Concept et objectif de GROUPBY : La fonction GROUPBY permet de regrouper les lignes d'une table selon une ou plusieurs colonnes spécifiées. Contrairement à
SUMMARIZE, GROUPBY ne crée pas d'agrégation implicite via CALCULATE. Cela permet de créer des groupes de données tout en gardant un contrôle total sur les expressions ou
calculs appliqués à l'intérieur de chaque groupe, ce qui est utile pour des analyses fines ou des transformations personnalisées.
- Rôle du paramètre table : Le paramètre table indique la table sur laquelle le regroupement sera effectué. Cette table peut être physique ou calculée dynamiquement
avec des fonctions DAX comme FILTER ou ADDCOLUMNS. Le choix de la table influence directement le nombre de lignes à regrouper
et le contexte des calculs dans les colonnes créées après le regroupement.
- Importance des paramètres groupBy_columnName : Les colonnes spécifiées dans groupBy_columnName déterminent la structure du regroupement. Chaque
combinaison unique de valeurs dans ces colonnes forme un groupe distinct dans le résultat. Il est donc important de bien sélectionner ces colonnes pour refléter correctement la
granularité souhaitée dans l'analyse.
- Utilité des paramètres name et expression : Après avoir défini les colonnes de regroupement, GROUPBY permet d'ajouter des colonnes calculées pour chaque
groupe via les paramètres name et expression. Ces expressions sont évaluées pour chaque groupe, offrant ainsi la possibilité de créer des mesures ou des valeurs personnalisées
sans utiliser CALCULATE. Cela augmente la flexibilité et permet des analyses complexes.
- Différence avec SUMMARIZE : Contrairement à SUMMARIZE, GROUPBY ne crée pas de contexte de filtre implicite pour évaluer les
expressions. Cela peut éviter certaines erreurs subtiles dans les calculs et permet un contrôle plus explicite sur les agrégations et transformations appliquées. Cette
distinction est particulièrement utile pour des modèles complexes avec de nombreuses relations et filtres.
- Applications pratiques : GROUPBY est souvent utilisée pour créer des tables intermédiaires avant d'appliquer des mesures ou des transformations supplémentaires.
Par exemple, on peut regrouper des ventes par client et créer une colonne calculant la moyenne des montants par client. Cela permet de simplifier les calculs ultérieurs dans
des visualisations ou mesures DAX.
- Comportement avec les tables vides ou les valeurs nulles : Si la table source est vide, le résultat de GROUPBY est une table vide. Les valeurs nulles dans les
colonnes de regroupement sont considérées comme des valeurs distinctes, formant des groupes séparés. Il est donc conseillé de gérer ou filtrer les valeurs nulles si elles ne
doivent pas créer de groupes spécifiques.
- Bonnes pratiques et optimisation : Il est recommandé de limiter le nombre de colonnes de regroupement pour éviter une explosion du nombre de groupes et
préserver les performances. Utiliser des variables (VAR) pour stocker les résultats intermédiaires peut améliorer la lisibilité et la vitesse d'évaluation. Documenter
clairement la logique de regroupement est également important pour assurer la maintenance et la compréhension du modèle DAX.
Dernière mise à jour : Vendredi, le 30 Mai 2025