Agregační funkce v jazyce DAX slouží k získání určitého sumarizovaného nebo seskupeného pohledu na data. Díky tomu můžeme data ve vysokém detailu v učitém sloupci pomocí agregace upravit do přehlednější a reportovatelné podoby. Můžeme například sečíst (SUM, SUMX) nějakou peněžní metriku po jednotlivých kategoriích nebo třeba vyjádřit maximální nebo minimální (MAX, MAXX, MIN, MINX) hodnotu přes kategorie.
Seznam Agregačních funkcí v DAX
Funkce můžeme rozdělit do 2 kategorií. V DAX pro Power BI a PowerPivot existuje zvláštnost oproti Excelu v tom, že některé funkce v DAX mají ekvivalentní funkci, která končí na “X“. Tyto X funkce jsem vysvětlil v článku SUM vs SUMX.
1) Standardní funkce: Jako parametr přijímají nejčastěji <sloupec>, kromě fce COUNTROWS, kde je parametrem <tabulka>. Tyto funkce provádějí agregaci vždy nad celým sloupcem.
- SUM – sečte hodnoty v určitém sloupci
- COUNT – počet číselných hodnot v určitém sloupci
- COUNTA – počet neprázdných hodnot ve sloupci včetně textu
- MAX – vrací maximální hodnotu v určitém sloupci
- MIN – vrací minimální hodnotu v určitém sloupci
- AVERAGE – průměr hodnot v určitém sloupci
- AVERAGEA – pracuje stejně jako funkce AVERAGE s tím rozdílem, že zpracovává i nenumerické znaky
- COUNTBLANK – sečte všechny počet prýzdných hodnot ve sloupci
- COUNTROWS – počet řádků v tabulce, nejčastěji se používá v kombinaci s funkcí FILTER.
2) X Funkce: Tyto funkce přijímají jako parametr tabulku a výraz <tabulka>, <expression> a následně iterují řádek po řádku v dané tabulce. Významově jsou stejné jako ty uvedené výše.
- SUMX
- MAXX
- MINX
- COUNTX
- AVERAGEX
- COUNTX
DAX agregace na příkladu Power BI reportu – agragační funkce v praxi
K příkladu použiju opět Power BI laboratoř, kterou jsem vytvořil v minulých dílech. Pracovat budu se 2 tabulkami – Tržby (FactInternetSales) a Kalendář (DimDate), viz model.
Dále postupně vytvořím metriky pomocí standardních agregačních funkcí a nechám zobrazit v reportu