GROUPBY
Aplica-se a:Coluna calculadaTabela calculadaMeasureCálculo visual
Observação
Esta função é desencorajada para uso em cálculos visuais pois provavelmente retorna resultados sem sentido.
A função GROUPBY é semelhante à função SUMMARIZE. No entanto, GROUPBYnot faz um CALCULATE implícito para quaisquer colunas de extensão que ele adiciona. GROUPBY permite que uma nova função, CURRENTGROUP, seja usada dentro de funções de agregação nas colunas de extensão adicionadas. GROUPBY é usado para executar várias agregações em uma única verificação de tabela.
Sintaxe
GROUPBY (<table> [, <groupBy_columnName> [, <groupBy_columnName> [, …]]] [, <name>, <expression> [, <name>, <expression> [, …]]])
Parâmetros
Vigência | Definição |
---|---|
table |
Qualquer expressão DAX que retorna uma tabela de dados. |
groupBy_columnName |
O nome de uma coluna existente na tabela (or em uma tabela related) pela qual os dados devem ser agrupados. Este parâmetro não pode ser uma expressão. |
name |
O nome dado a uma nova coluna que está sendo adicionada à lista de GroupBy colunas, entre aspas duplas. |
expression |
Uma das funções de agregação X com o argumento first sendo CURRENTGROUP(). Consulte Com CURRENTGROUP seção abaixo para obter a lista completa de funções de agregação X suportadas. |
Regresso value
Uma tabela com as colunas selecionadas para os argumentos groupBy_columnName and as colunas de extensão designadas pelos argumentos de nome.
Comentários
A função GROUPBY faz o seguinte:
Comece com a tabela especificada (andallrelated tabelas na direção "to-one").
Crie um agrupamento usando all das GroupBy colunas (que devem existir na tabela a partir da etapa #1.).
Cada grupo é uma linha no resultado, mas representa um conjunto de linhas na tabela original.
Para cada grupo, evaluate as colunas de extensão que estão sendo adicionadas. Ao contrário da função SUMMARIZE, uma CALCULATE implícita not é executada and o grupo não é colocado no contexto filter.
Cada coluna para a qual você define um nome deve ter uma expressão correspondente; caso contrário, um error será retornado. O argumento first, name, define o nome da coluna nos resultados. O argumento second, expressão, define o cálculo realizado para obter o value para cada linha nessa coluna.
groupBy_columnName
deve estar na tabela or em uma tabela related.Cada nome deve ser colocado entre aspas duplas.
A função agrupa um conjunto selecionado de linhas em um conjunto de linhas de resumo pela values de uma or mais colunas groupBy_columnName. Uma linha é retornada para cada grupo.
GROUPBY é usado principalmente para executar agregações sobre resultados intermediários de DAX expressões de tabela. Para agregações eficientes sobre tabelas físicas no modelo, considere o uso de SUMMARIZECOLUMNSorSUMMARIZE função.
Esta função not é suportada para uso no modo DirectQuery quando usada em colunas calculadas or regras de segurança em nível de linha (RLS).
Com CURRENTGROUP
CURRENTGROUP só pode ser usado em uma expressão que define uma coluna de extensão dentro da função GROUPBY. Noeffect, CURRENTGROUP retorna um conjunto de linhas do argumento de tabela de GROUPBY que pertencem à linha atual do resultado GROUPBY. A função CURRENTGROUP não usa argumentos and só é suportada como o argumento first para uma das seguintes funções de agregação: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.S, STDEVX.P, SUMX, VARX.S, VARX.P.
Exemplo
O exemplo a seguir first calcula o total de vendas agrupadas por país andproduct categoria em tabelas físicas usando a função SUMMARIZECOLUMNS. Em seguida, utiliza a função GROUPBY para analisar o resultado intermédio do passo first para find as vendas máximas em cada país nas categorias 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])
)