Compartir a través de


Descripción de las funciones para jerarquías de elementos primarios y secundarios en DAX

DAX proporciona cinco funciones para ayudar a los usuarios a administrar los datos que se muestran como una jerarquía de elementos primarios y secundarios en los modelos. Con estas características, un usuario puede obtener el linaje completo de elementos primarios de una fila o el número de niveles del linaje hasta el elemento primario superior. Puede averiguar cuál es el elemento primario del nivel n por encima de la fila actual, cual es el descendiente n desde la parte superior de la jerarquía de filas actual, y si un elemento primario determinado es un elemento primario de la jerarquía de fila actual.

Funciones de elemento primario y secundario en DAX

La tabla siguiente contiene una jerarquía de elementos primarios y secundarios en las columnas EmployeeKey y ParentEmployeeKey, que se utiliza en todos los ejemplos de funciones.

EmployeeKey

ParentEmployeeKey

112

14

112

3

14

11

3

13

3

162

3

117

162

221

162

81

162

En la tabla anterior se ve que el empleado 112 no tiene definido ningún elemento primario, el empleado 14 tiene al empleado 112 como jefe (ParentEmployeeKey), el empleado 3 tiene al empleado 14 como jefe, y los empleados 11, 13 y 162 tienen al empleado 3 como jefe. La tabla hace más fácil ver que el empleado 112 no tienen un jefe por encima, y que es el jefe superior de todos los empleados de la tabla. También, que el empleado 3 está por debajo del empleado 14, y que los empleados 11, 13 y 162 están por debajo del empleado 3.

En la tabla siguiente se muestran las funciones disponibles, una breve descripción de la función y un ejemplo de la función con los mismos datos anteriores.

Función

Descripción y ejemplo

Función PATH (DAX)

Devuelve una cadena de texto delimitada con los identificadores de todos los elementos primarios de la fila actual, comenzando con el más antiguo o superior y continuando hasta el actual.

En la siguiente columna de ejemplo, ‘Path’ se define como '=PATH(EmployeeKey, ParentEmployeeKey)'

EmployeeKey

ParentEmployeeKey

Path

112

112

14

112

112|14

3

14

112|14|3

11

3

112|14|3|11

13

3

112|14|3|13

162

3

112|14|3|162

117

162

112|14|3|162|117

221

162

112|14|3|162|221

81

162

112|14|3|162|81

Función PATHLENGTH (DAX)

Devuelve el número de niveles de una función PATH() determinada, empezando en el nivel actual y continuando hasta el nivel primario más antiguo o superior.

En el ejemplo siguiente, la columna PathLength se define como ‘=PATHLENGTH([Path])’. En el ejemplo se incluyen todos los datos del ejemplo de Path() para que sea más fácil entender la función.

EmployeeKey

ParentEmployeeKey

Path

PathLength

112

112

1

14

112

112|14

2

3

14

112|14|3

3

11

3

112|14|3|11

4

13

3

112|14|3|13

4

162

3

112|14|3|162

4

117

162

112|14|3|162|117

5

221

162

112|14|3|162|221

5

81

162

112|14|3|162|81

5

Función PATHITEM (DAX)

Devuelve el elemento de la posición especificada de una función PATH() como resultado, contando de izquierda a derecha.

En el siguiente ejemplo, la columna PathItem - 4th from left se define como ‘=PATHITEM([Path], 4)’. Este ejemplo devuelve EmployeKey de la cuarta posición de la cadena de Path desde la izquierda, utilizando los mismos datos del ejemplo de Path().

EmployeeKey

ParentEmployeeKey

Path

PathItem - 4th leftright

112

112

14

112

112|14

3

14

112|14|3

11

3

112|14|3|11

11

13

3

112|14|3|13

13

162

3

112|14|3|162

162

117

162

112|14|3|162|117

162

221

162

112|14|3|162|221

162

81

162

112|14|3|162|81

162

Función PATHITEMREVERSE (DAX)

Devuelve el elemento de la position de una función PATH() como resultado, contando hacia atrás, de derecha a izquierda.

En el siguiente ejemplo, la columna PathItemReverse - 3rd from right se define como ‘=PATHITEMREVERSE([Path], 3)’. Este ejemplo devuelve EmployeKey de la tercera posición de la cadena de Path desde la derecha, usando los mismos datos del ejemplo de Path().

EmployeeKey

ParentEmployeeKey

Path

PathItemReverse - 3rd from right

112

112

14

112

112|14

3

14

112|14|3

112

11

3

112|14|3|11

14

13

3

112|14|3|13

14

162

3

112|14|3|162

14

117

162

112|14|3|162|117

3

221

162

112|14|3|162|221

3

81

162

112|14|3|162|81

3

Función PATHCONTAINS (DAX)

Devuelve TRUE si el item especificado existe en la path especificada.

En el ejemplo siguiente, la columna PathContains - employee 162 se define como ‘=PATHCONTAINS([Path], "162")’. Este ejemplo devuelve TRUE si el empleado 162 está en la ruta dada. En este ejemplo se usan los resultados del ejemplo de Path() anterior.

EmployeeKey

ParentEmployeeKey

Path

PathContains - employee 162

112

112

FALSE

14

112

112|14

FALSE

3

14

112|14|3

FALSE

11

3

112|14|3|11

FALSE

13

3

112|14|3|13

FALSE

162

3

112|14|3|162

TRUE

117

162

112|14|3|162|117

TRUE

Nota de advertenciaAdvertencia

En SQL Server 2012, el motor analítico en memoria xVelocity (VertiPaq) no admite la definición de jerarquías de elementos primarios y secundarios. Sin embargo, el lenguaje DAX proporciona varias funciones que permiten que los usuarios exploren ese tipo de jerarquías y las usen en fórmulas.