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,


Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Time Intelligence en LuckyTemplates: cómo calcular el número de transacciones realizadas en los últimos N días

Descubra cómo calcular el total de transacciones realizadas en los últimos N días y obtenga información útil utilizando la inteligencia de tiempo en LuckyTemplates.

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

Cómo evaluar clústeres en sus datos mediante la técnica DAX en LuckyTemplates

En este tutorial, demuestro cómo mostrar clústeres en sus datos permite extraer información valiosa usando técnicas DAX avanzadas.

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

¿Cuánto personal tenemos actualmente? Lógica de fechas múltiples en LuckyTemplates usando DAX

En este tutorial, aprenderá a calcular la <strong>población actual del personal</strong> para las relaciones múltiples de la tabla de calendario mediante la función COUNTROWS y FILTER en LuckyTemplates.

Hacer una solicitud HTTP en Power Automate

Hacer una solicitud HTTP en Power Automate

Aprenda a crear una solicitud HTTP con Power Automate y cómo implementar soluciones efectivas para la automatización de tareas.

Programe un flujo de escritorio para que se ejecute en Power Automate

Programe un flujo de escritorio para que se ejecute en Power Automate

En este tutorial, aprenda cómo programar un flujo de escritorio en Power Automate para automatizar tareas en la web y su escritorio.

Power Automate Terminar Control de acción en flujos

Power Automate Terminar Control de acción en flujos

Aprenda a usar correctamente el control Terminar acción de Power Automate que termina las acciones en un flujo si no se cumple alguna de las condiciones.

Power Query: combinar archivos de varias carpetas

Power Query: combinar archivos de varias carpetas

Aprenda a combinar archivos de varias carpetas en su red, escritorio, OneDrive o SharePoint utilizando Power Query.

Tipos de flujo de Power Automate y cuándo usarlos

Tipos de flujo de Power Automate y cuándo usarlos

En este blog, analizamos las similitudes y diferencias entre los tipos de flujo de Power Automate y determinamos cuándo usar cada flujo. Encuentra la mejor opción de automatización.

Conectores de Power Automate: número, texto y fecha y hora

Conectores de Power Automate: número, texto y fecha y hora

Familiarízate con algunos conectores Power Automate integrados que transforman cadenas en otro formato: número, texto y fecha y hora.

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Tutorial del analizador VertiPaq: relaciones e integridad referencial

Este tutorial detallado sobre el analizador VertiPaq en DAX Studio le enseñará cómo usar la pestaña Relaciones para optimizar su DAX y resolver problemas de integridad referencial.