Função DAX CROSSJOIN: horários do servidor e plano de consulta

Neste tutorial, você aprenderá como a função funciona no DAX usando o painel Horários do servidor e seu plano de consulta.

A função CROSSJOIN pode ser usada para criar um produto cartesiano de duas tabelas. Um produto cartesiano é um conjunto de todas as combinações possíveis de linhas de duas ou mais tabelas.

O código DAX abaixo será usado neste tutorial.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Você pode ver que a função CROSSJOIN resulta em uma combinação da marca e cor do produto, mesmo que algumas dessas combinações não existam na tabela de fatos . Isso resulta em uma tabela com um total de 176 linhas.

Na guia Horários do servidor, a primeira consulta recupera a Marca da tabela Produtos, enquanto a segunda consulta recupera a Cor.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Função DAX CROSSJOIN: horários do servidor e plano de consulta

No Plano de Consulta Lógica , a primeira linha retorna o resultado em forma de tabela. A segunda e a terceira linhas na tabela de produtos digitalizam a cor e a marca, respectivamente.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Depois que os dados são recebidos, o Formula Engine itera sobre a tabela e produz uma combinação de ambas as colunas. O CrossApply na Linha 2 corresponde à função CROSSJOIN.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Índice

Filtrar resultados CROSSJOIN em DAX

Você pode usar a função para filtrar os resultados de um CROSSJOIN. Por exemplo, você pode usá-lo para mostrar apenas produtos que são vermelhos.

No entanto, lembre-se de que você não pode colocar uma função CROSSJOIN dentro de um argumento FILTER .

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Agora, se você executar este código e verificar a guia Server Timings, verá que o contexto do filtro não aparece como uma cláusula WHERE na consulta.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

A função CROSSJOIN só pode ser resolvida pelo Formula Engine . O código não funciona pois fica entre FILTER e que são funções que só podem ser resolvidas pelo Storage Engine . Assim, o CROSSJOIN causou a quebra do loop entre essas duas funções.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Portanto, você precisa colocar a função FILTER dentro do argumento CROSSJOIN para que o filtro funcione.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Agora, se você executar este código e verificar a guia Server Timings, verá que a função FILTER agora é representada pela cláusula WHERE.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

No plano de consulta lógica, você pode ver que, em vez do operador de filtro, é usado o filtro VertiPaq .

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Isso ocorre porque a nova condição de filtro no código pode ser enviada para o mecanismo de armazenamento. Depois que o resultado é retornado, o argumento CROSSJOIN é executado dentro do Formula Engine.

O Operador IN

Você também pode usar o operador em vez do sinal de igual em um argumento FILTER.

O operador IN pode ser usado no argumento de expressão da função FILTER para filtrar uma tabela com base no fato de um valor estar contido em uma lista de valores ou em uma tabela.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Quando você usa a combinação FILTER – IN , o mecanismo DAX precisa executar um filtro IsEmpty que confirma se a cor do produto é vermelha ou preta.

Adicionar coluna de vendas totais no resultado CROSSJOIN DAX

Outras funções também podem ser usadas junto com CROSSJOIN.

Você pode usar a função para adicionar outra coluna em sua tabela e depois escrever o argumento da informação que deseja mostrar.

Neste exemplo, vamos adicionar uma coluna Total Sales.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Ao executar o código, os resultados ainda retornarão 176 linhas. No entanto, algumas combinações terão valores em branco na coluna Total de vendas. Isso ocorre porque essas combinações não têm uma linha correspondente na tabela Vendas.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Na guia Horários do servidor, o código primeiro seleciona a marca e a cor. Em seguida, soma o produto da Quantidade e do Preço Líquido de Vendas.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Nesse caso, o mecanismo DAX primeiro recupera todas as combinações de marca e cor existentes na tabela Produtos, junto com aquelas com uma linha correspondente na tabela Vendas. Em seguida, ele recupera as colunas de marca e cor separadamente.

No Plano de Consulta Física, você pode ver dois caches de dados; um para a marca e outro para a cor. Quando você multiplica seus registros totais, obtém 176 linhas.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Em seguida, é realizada uma pesquisa nessas 176 linhas para ver se elas têm um valor correspondente na tabela Vendas. Você pode ver que apenas 111 linhas têm valores. As outras 65 linhas retornarão espaços em branco.

Além disso, se você adicionar mais colunas no argumento CROSSJOIN, o resultado também retornará mais linhas.

Função DAX CROSSJOIN: horários do servidor e plano de consulta

Conclusão

A função DAX CROSSJOIN gera uma nova tabela combinando linhas de uma tabela com as linhas de outra. Essa função é semelhante à cláusula CROSS JOIN no SQL e pode ser usada para criar consultas mais complexas em seu modelo de dados.

Ele pode gerar uma lista de todas as combinações de valores possíveis de duas ou mais tabelas. Também pode ser usado para criar rapidamente uma nova tabela com um grande número de linhas, o que pode ser útil para análise de dados, teste ou benchmarking de desempenho.

No geral, a função CROSSJOIN é uma ferramenta útil em cenários onde você precisa combinar dados de várias tabelas ou gerar uma lista de todas as combinações possíveis.

Tudo de bom,

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.