Definitive Guide to DAX - 3. Using basic table functions Flashcards
¿Qué son las funciones de tabla en DAX?
Son funciones que en lugar de devolver un único valor, devuelven una tabla.
¿Cómo se denominan aquellas expresiones que devuelven un único valor?
Expresiones escalares.
¿Es recomendable utilizar variables en las expresiones DAX?
Sí, es recomendable de cara a que el código sea más fácil de leer.
Como regla general, en llamadas anidadas de funciones, ¿cuál es el orden de evaluación en DAX?
Como regla general DAX evalúa primero las interiores.
¿Se puede usar el resultado de una función de tabla en una medida o una columna calculada?
Como regla general no, tanto medidas como columnas calculadas necesitan valores escalares. Habría que utilizar tablas calculadas.
¿Para qué sirve la sentencia EVALUATE?
Permite ejecutar una consulta DAX en herramientas como DAX Studio, SSMS, SSRS o Excel.
¿Para qué sirve la sentencia DEFINE MEASURE de EVALUATE?
Es una sentencia opcional que permite definir una medida local a la query DAX ejecutada en EVALUATE y útil para debug o testing.
¿Cuál es la sintaxis de la sentencia EVALUATE?
[DEFINE { MEASURE [] = } { VAR = }] EVALUATE [ORDER BY { [{ASC | DESC}]}[, …] [START AT {|} [, …]]]
¿Para qué sirve la función FILTER?
FILTER recibe como parámetros una tabla, y una condición lógica, y devuelve todas las filas que cumplan la condición. Es a la vez una función de tabla y un iterador.
¿Cuál es la sintaxis de la sentencia FILTER?
FILTER(,)
¿Es posible ejecutar sentencias FILTER anidadas?
Sí.
¿En una expresión con sentencias FILTER anidadas cuál es la recomendación en cuanto a rendimiento?
Como buena práctica, se recomienda aplicar primero la condición más restrictiva, la que filtre más.
¿Para qué sirve la función ALL?
Devuelve todas las filas de una tabla, o todos los valores de una columna, omitiendo los filtros que se puedan haber aplicado.
¿Cuál es la sintaxis de la función ALL?
ALL( [ | [, [, [,…]]]] )
El argumento de la función ALL debe ser una referencia a una tabla base o a una columna base. No se pueden usar expresiones de tabla ni de columna con la función ALL.
¿Para qué sirve la función ALLEXCEPT?
Quita todos los filtros de contexto de la tabla, excepto los que se han aplicado a las columnas especificadas.
¿Cuál es la sintaxis de la sentencia ALLEXCEPT?
ALLEXCEPT(,[,[,…]])
- table: Tabla en la que se quitan todos los filtros de contexto, excepto los filtros de las columnas especificadas en los argumentos siguientes.
columna: Columna para la que se deben conservar los filtros de contexto.
¿Cuál es la diferencia fundamental entre la salida que devuelve ALL y la que devuelve VALUES o DISTINCT?
-La clausula ALL devuelve todos los valores diferentes de una columna, y la clausula VALUES devuelve todos los valores distiintos en base a los filtros aplicados en el informe.
¿Cuál es la diferencia principal entre VALUES y DISTINCT?
-La diferencia principal está en que VALUES considera las celdas BLANK como valores válidos, mientras que DISTINCT no.
¿La función ALL tiene en cuenta las celdas BLANK?¿Existe alguna función equivalente que permita descartarlo?
Sí, siempre. Para no tenerlo en cuenta se puede usar ALLNOBLANKROW.
¿Las funciones VALUES o DISTINCT pueden usarse para varias columnas?
No, solo permiten una como parámetro.
¿Cómo se comportan VALUES o DISTINCT al usar una tabla como parámetro?
- DISTINCT devuelve las filas diferentes de una tabla, y no considera las filas BLANK.
- VALUES devuelve todas las filas de una tabla incluyendo el BLANK ROW. Mantiene los duplicados.
¿Qué hace la función SELECTEDVALUE?
Devuelve el valor si el resultado es un solo valor distinto, de lo contrario devuelve un resultado alternaativo.
¿Cuál es la sintaxis de SELECTEDVALUE?
SELECTEDVALUE([, ])
¿Qué hace la función CONCATENATEX?
Concatena el resultado de una expresión para cada fila de una tabla.
¿Cuál es la sintaxis de CONCATENATEX?
CONCATENATEX(, , [delimiter])
¿Para qué sirve la función ALLSELECTED?
Quita los filtros de contexto de las columnas y las filas de la consulta actual, a la vez que conserva todos los demás filtros de contexto o filtros explícitos.
¿Cuál es la sintaxis de ALLSELECTED?
ALLSELECTED([ | [, [, [,…]]]] )