Compartir a través de


GROUPBY

Se aplica a:columna CalculadaTabla calculadaMeasurecálculo visual

Nota

No se recomienda usar esta función en cálculos visuales, ya que probablemente devuelva resultados sin sentido.

La función GROUPBY es similar a la función SUMMARIZE. Sin embargo, GROUPBYnot realiza una CALCULATE implícita para las columnas de extensión que agrega. GROUPBY permite usar una nueva función, CURRENTGROUP, dentro de las funciones de agregación de las columnas de extensión que agrega. GROUPBY se usa para realizar varias agregaciones en un solo examen de tabla.

Sintaxis

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

Parámetros

Término Definición
table Cualquier expresión DAX que devuelva una tabla de datos.
groupBy_columnName Nombre de una columna existente de la tabla (or en una tabla de related) por la que se van a agrupar los datos. Este parámetro no puede ser una expresión.
name Nombre dado a una nueva columna que se va a agregar a la lista de columnas de GroupBy, entre comillas dobles.
expression Una de las funciones de agregación X con el argumento first que se CURRENTGROUP(). Consulte la sección With CURRENTGROUP below (Con CURRENTGROUP) para obtener la lista completa de funciones de agregación X admitidas.

Devolver value

Una tabla con las columnas seleccionadas para los argumentos de groupBy_columnName and las columnas de extensión designadas por los argumentos name.

Observaciones

  • La función GROUPBY hace lo siguiente:

    1. Comience con la tabla especificada (andallrelated tablas en la dirección "a uno").

    2. Cree una agrupación mediante all de las columnas de GroupBy (que son necesarias para existir en la tabla del paso 1).

    3. Cada grupo es una fila en el resultado, pero representa un conjunto de filas de la tabla original.

    4. Para cada grupo, evaluate las columnas de extensión que se van a agregar. A diferencia de la función SUMMARIZE, se CALCULATE realiza una not implícita, and el grupo no se coloca en el contexto de filter.

  • Cada columna para la que define un nombre debe tener una expresión correspondiente; De lo contrario, se devuelve un error. El argumento first, name, define el nombre de la columna en los resultados. El argumento second, expresión, define el cálculo realizado para obtener el value de cada fila de esa columna.

  • groupBy_columnName debe estar en la tabla or de una tabla related.

  • Cada nombre debe ir entre comillas dobles.

  • La función agrupa un conjunto seleccionado de filas en un conjunto de filas de resumen por el values de una or más columnas de groupBy_columnName. Se devuelve una fila para cada grupo.

  • GROUPBY se usa principalmente para realizar agregaciones a través de resultados intermedios de DAX expresiones de tabla. Para agregaciones eficaces sobre tablas físicas del modelo, considere la posibilidad de usar SUMMARIZECOLUMNSorSUMMARIZE función.

  • Esta función se not se admite para su uso en el modo DirectQuery cuando se usa en columnas calculadas or reglas de seguridad de nivel de fila (RLS).

Con CURRENTGROUP

CURRENTGROUP solo se puede usar en una expresión que define una columna de extensión dentro de la función GROUPBY. In-effect, CURRENTGROUP devuelve un conjunto de filas del argumento table de GROUPBY que pertenecen a la fila actual del resultado del GROUPBY. La función CURRENTGROUP no acepta argumentos and solo se admite como argumento first en una de las siguientes funciones de agregación: AVERAGEX, COUNTAX, COUNTX, GEOMEANX, MAXX, MINX, PRODUCTX, STDEVX.SSTDEVX.P, STDEVX.P, VARX.S, VARX.P, .

Ejemplo

En el ejemplo siguiente first calcula el total de ventas agrupadas por país andproduct categoría sobre tablas físicas mediante la función SUMMARIZECOLUMNS. A continuación, usa la función GROUPBY para examinar el resultado intermedio del paso first para find las ventas máximas de cada país en las categorías de 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])
)

SUMMARIZE funciónSUMMARIZECOLUMNS