Sdílet prostřednictvím


GROUPBY

Platí pro: Výpočet počítané tabulky Počítaná tabulka Výpočet vizuálu

Poznámka:

Tato funkce se nedoporučuje používat ve vizuálních výpočtech , protože pravděpodobně vrací nesmyslné výsledky.

Funkce GROUPBY je podobná funkci SUMMARIZE . GROUPBY však neprovádí implicitní CALCULATE pro žádné rozšiřující sloupce, které přidává. GROUPBY umožňuje použít novou funkci CURRENTGROUP uvnitř agregačních funkcí ve sloupcích rozšíření, které přidává. FUNKCE GROUPBY slouží k provádění více agregací v jedné tabulce.

Syntaxe

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

Parametry

Pojem definice
table Libovolný výraz DAX, který vrací tabulku dat.
groupBy_columnName Název existujícího sloupce v tabulce (nebo v související tabulce), podle kterého se mají data seskupit. Tento parametr nemůže být výraz.
name Název přiřazený novému sloupci, který se přidává do seznamu sloupců GroupBy uzavřených do dvojitých uvozovek.
výraz Jedna z agregačních funkcí X s prvním argumentem CURRENTGROUP(). Úplný seznam podporovaných agregačních funkcí X najdete níže v části CURRENTGROUP.

Vrácená hodnota

Tabulka s vybranými sloupci pro argumenty groupBy_columnName a sloupci rozšíření určené argumenty názvu.

Poznámky

  • Funkce GROUPBY provede následující:

    1. Začněte zadanou tabulkou (a všechny související tabulky ve směru "to-one").

    2. Vytvořte seskupení pomocí všech sloupců GroupBy (které jsou nutné k existenci v tabulce z kroku 1.).

    3. Každá skupina je ve výsledku jeden řádek, ale představuje sadu řádků v původní tabulce.

    4. Pro každou skupinu vyhodnoťte přidané sloupce rozšíření. Na rozdíl od funkce SUMMARIZE se implicitní funkce CALCULATE neprovádí a skupina není umístěna do kontextu filtru.

  • Každý sloupec, pro který definujete název, musí mít odpovídající výraz; v opačném případě se vrátí chyba. První argument, název, definuje název sloupce ve výsledcích. Druhý argument, výraz, definuje výpočet provedený za účelem získání hodnoty pro každý řádek v daném sloupci.

  • groupBy_columnName musí být buď v tabulce, nebo v související tabulce.

  • Každý název musí být uzavřený do uvozovek.

  • Funkce seskupí vybranou sadu řádků do sady souhrnných řádků podle hodnot jednoho nebo více groupBy_columnName sloupců. Pro každou skupinu se vrátí jeden řádek.

  • GROUPBY se primárně používá k provádění agregací u průběžných výsledků z výrazů tabulky DAX. Pro efektivní agregace nad fyzickými tabulkami v modelu zvažte použití funkce SUMMARIZECOLUMNS nebo SUMMARIZE .

  • Tato funkce není podporována pro použití v režimu DirectQuery při použití v počítaných sloupcích nebo pravidlech zabezpečení na úrovni řádků (RLS).

S CURRENTGROUP

CURRENTGROUP lze použít pouze ve výrazu, který definuje rozšiřující sloupec v rámci funkce GROUPBY. Funkce CURRENTGROUP vrátí sadu řádků z argumentu tabulky GROUPBY, který patří do aktuálního řádku výsledku GROUPBY. Funkce CURRENTGROUP nepřijímá žádné argumenty a jako první argument se podporuje pouze jedna z následujících agregačních funkcí: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX. S, STDEVX. P, SUMX, VARX. S, VARX. P.

Příklad

Následující příklad nejprve vypočítá celkový prodej seskupený podle země a kategorie produktů přes fyzické tabulky pomocí funkce SUMMARIZECOLUMNS . Potom pomocí funkce GROUPBY prohledá zprostředkující výsledek z prvního kroku k vyhledání maximálního prodeje v jednotlivých zemích napříč kategoriemi produktů.

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])  
)  

FUNKCE SUMMARIZE
SUMMARIZECOLUMNS