2017-10-05 4 views
0

Je suis nouveau pour DAX requêtes et en essayant de créer une requête DAX équivalente à suivre requête SQL. Je ne suis pas en mesure de prendre agrégat de plusieurs colonnes après groupby dans DAX. Comment puis-je résoudre ça?GroupBy et globale dans DAX

Répondre

3

Il y a en fait quelques façons de pouvoir BI pour faire ce genre d'agrégation. Voici trois options différentes avec des résultats légèrement différents les uns des autres.


Option 1: l'éditeur de requête

Dans la fenêtre de l'éditeur de requête, sélectionnez Transformer -> Grouper par ...

Group by

... et le configurer comme indiqué ci-dessous (assurez-vous de cliquer sur l'option Avancé).

Group by config

Cela se traduit dans le ci-dessous. Remarque - ceci remplace la table de départ.

Group by results


Option 2: Mesures

Dans la fenêtre régulière (pas l'éditeur de requête utilisée dans l'option 1), cliquez sur la modélisation -> Nouvelle mesure ...

New measure

... pour créer deux mesures en utilisant les formules ci-dessous.

Actual = SUM(Sales[Actual Sales]) 

Planned = SUM(Sales[Planned Sales]) 

Une fois que ces mesures sont créées, un visuel (une matrice dans ce cas) peut être créé avec les en-têtes et les valeurs souhaitées.

Measure matrix


Option 3: Colonnes

De même à l'option 2, cliquez sur la modélisation -> Nouvelle colonne ...

New columns

... à créez deux colonnes en utilisant les formules ci-dessous.

Actual = CALCULATE(
    SUM(Sales[Actual Sales]), 
    FILTER(
     Sales, 
     Sales[Year] = EARLIER(Sales[Year]) && 
     Sales[Company] = EARLIER(Sales[Company]) 
    ) 
) 

Planned = CALCULATE(
    SUM(Sales[Planned Sales]), 
    FILTER(
     Sales, 
     Sales[Year] = EARLIER(Sales[Year]) && 
     Sales[Company] = EARLIER(Sales[Company]) 
    ) 
) 

Maintenant, les agrégations sont dans des colonnes qui peuvent être utilisées pour créer des rapports.

Column results