Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

En este tutorial, aprenderá cómo funciona la función en DAX mediante el panel Tiempos del servidor y su plan de consulta.

La función CROSSJOIN se puede utilizar para crear un producto cartesiano de dos tablas. Un producto cartesiano es un conjunto de todas las combinaciones posibles de filas de dos o más tablas.

El siguiente código DAX se usará en este tutorial.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Puede ver que la función CROSSJOIN da como resultado una combinación de la marca y el color del producto, incluso si algunas de estas combinaciones no existen en la tabla Fact . Esto da como resultado una tabla con un total de 176 filas.

En la pestaña Tiempos del servidor, la primera consulta recupera la Marca de la tabla Productos, mientras que la segunda consulta recupera el Color.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

En el Plan de consulta lógica , la primera línea devuelve el resultado en forma de tabla. La segunda y tercera línea en la tabla de productos escanean el color y la marca, respectivamente.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Una vez que se reciben los datos, Formula Engine itera sobre la tabla y produce una combinación de ambas columnas. El CrossApply en la Línea 2 corresponde a la función CROSSJOIN.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Tabla de contenido

Filtrar resultados CROSSJOIN en DAX

Puede usar la función para filtrar los resultados de un CROSSJOIN. Por ejemplo, puede usarlo para mostrar solo productos que son rojos.

Sin embargo, recuerde que no puede colocar una función CROSSJOIN dentro de un argumento FILTER .

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Ahora, si ejecuta este código y comprueba la pestaña Tiempos del servidor, verá que el contexto del filtro no aparece como una cláusula WHERE en la consulta.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

La función CROSSJOIN solo puede ser resuelta por Formula Engine . El código no funciona ya que se encuentra entre FILTER y , que son funciones que solo Storage Engine puede resolver . Por lo tanto, CROSSJOIN hizo que se rompiera el bucle entre estas dos funciones.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Por lo tanto, debe colocar la función FILTRO dentro del argumento CROSSJOIN para que funcione el filtro.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Ahora, si ejecuta este código y verifica la pestaña Tiempos del servidor, verá que la función FILTRO ahora está representada por la cláusula WHERE.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

En el Plan de Consulta Lógica, puede ver que en lugar del Operador de Filtro, se utiliza el Filtro VertiPaq .

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Esto se debe a que la nueva condición de filtro en el código se puede enviar al motor de almacenamiento. Después de que se devuelve el resultado, el argumento CROSSJOIN se ejecuta dentro de Formula Engine.

El operador IN

También puede usar el operador en lugar del signo igual en un argumento FILTER.

El operador IN se puede usar dentro del argumento de expresión de la función FILTER para filtrar una tabla en función de si un valor está contenido dentro de una lista de valores o dentro de una tabla.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Cuando usa la combinación FILTER - IN , el motor DAX tiene que realizar un filtro IsEmpty que confirma si el color del producto es rojo o negro.

Agregue la columna de ventas totales en el resultado CROSSJOIN DAX

También se pueden usar otras funciones junto con CROSSJOIN.

Puede usar la función para agregar otra columna en su tabla y luego escribir el argumento de la información que desea mostrar.

En este ejemplo, agreguemos una columna Ventas totales.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Cuando ejecute el código, los resultados aún devolverán 176 filas. Sin embargo, algunas combinaciones tendrán valores en blanco en la columna Ventas totales. Esto se debe a que estas combinaciones no tienen una fila correspondiente en la tabla Ventas.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

En la pestaña Tiempos del servidor, el código primero selecciona la marca y el color. Luego suma el producto de la cantidad y el precio neto de venta.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

En este caso, el motor DAX primero recupera todas las combinaciones de marca y color que existen dentro de la tabla Productos, junto con las que tienen una fila correspondiente en la tabla Ventas. Luego, recupera las columnas de marca y color por separado.

En el Plan de consulta física, puede ver dos cachés de datos; uno para la marca y otro para el color. Cuando multiplica sus registros totales, obtiene 176 filas.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Luego, se realiza una búsqueda en esas 176 filas para ver si tienen un valor correspondiente en la tabla Ventas. Puede ver que solo 111 filas tienen valores. Las otras 65 filas devolverán espacios en blanco.

Además, si agrega más columnas en el argumento CROSSJOIN, el resultado también devolverá más filas.

Función CROSSJOIN DAX: tiempos del servidor y plan de consulta

Conclusión

La función DAX CROSSJOIN genera una nueva tabla al combinar filas de una tabla con las filas de otra. Esta función es similar a la cláusula CROSS JOIN en SQL y se puede usar para crear consultas más complejas en su modelo de datos.

Puede generar una lista de todas las combinaciones de valores posibles de dos o más tablas. También se puede usar para crear rápidamente una nueva tabla con una gran cantidad de filas, lo que puede ser útil para el análisis de datos, las pruebas o la evaluación comparativa del rendimiento.

En general, la función CROSSJOIN es una herramienta útil en escenarios en los que necesita combinar datos de varias tablas o generar una lista de todas las combinaciones posibles.

Mis mejores deseos,


Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Qué es uno mismo en Python: ejemplos del mundo real

Cómo guardar y cargar un archivo RDS en R

Cómo guardar y cargar un archivo RDS en R

Aprenderá a guardar y cargar objetos desde un archivo .rds en R. Este blog también cubrirá cómo importar objetos desde R a LuckyTemplates.

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

Revisión de los primeros N días hábiles: una solución de lenguaje de codificación DAX

En este tutorial del lenguaje de codificación DAX, aprenda a usar la función GENERAR y a cambiar dinámicamente el título de una medida.

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Showcase Insights utilizando la técnica de elementos visuales dinámicos de subprocesos múltiples en LuckyTemplates

Este tutorial cubrirá cómo usar la técnica de elementos visuales dinámicos de subprocesos múltiples para crear información a partir de visualizaciones de datos dinámicos en sus informes.

Introducción al contexto de filtro en LuckyTemplates

Introducción al contexto de filtro en LuckyTemplates

En este artículo, repasaré el contexto del filtro. El contexto del filtro es uno de los temas principales que cualquier usuario de LuckyTemplates debería conocer inicialmente.

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Los mejores consejos para usar las aplicaciones en el servicio en línea de LuckyTemplates

Quiero mostrar cómo el servicio en línea de LuckyTemplates Apps puede ayudar a administrar diferentes informes e información generada a partir de varias fuentes.

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Analice los cambios en el margen de beneficio a lo largo del tiempo: análisis con LuckyTemplates y DAX

Aprenda a calcular los cambios de su margen de beneficio utilizando técnicas como la bifurcación de medidas y la combinación de fórmulas DAX en LuckyTemplates.

Ideas de materialización para cachés de datos en DAX Studio

Ideas de materialización para cachés de datos en DAX Studio

Este tutorial analizará las ideas de materialización de cachés de datos y cómo afectan el rendimiento de DAX al proporcionar resultados.

Informes comerciales con LuckyTemplates

Informes comerciales con LuckyTemplates

Si todavía usa Excel hasta ahora, este es el mejor momento para comenzar a usar LuckyTemplates para sus necesidades de informes comerciales.

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber

¿Qué es la puerta de enlace de LuckyTemplates? Todo lo que necesitas saber