Tuesday 26 December 2017

Mudança média de qlikview


Qlikview 8211 Movendo Expressões para o Script de Carga Qualquer pessoa que passou algum tempo jogando com um documento Qlikview sabe que é uma ferramenta muito impressionante. O poder real da Qlikview reside na sua capacidade de fornecer análise de dados para você rapidamente. É fácil ficar envolvido na construção de expressões ad hoc e deixá-los sentados na interface do usuário, acelerando a velocidade de processamento e abrandando o documento quando você faz seleções. Isso pode eliminar a característica mais impressionante da Qlikview. Recentemente, enfrentamos uma tarefa em que um cliente precisava calcular os últimos 12 dias, o valor médio das vendas, por produto, por distrito. Com o poder da análise de conjunto, esta não é uma expressão difícil de escrever. Poderia ser tão simples quanto: soma 40 123 lt saledado 123 gt 40 Data 40 hoje 40 41 - 12 41 41 lt 40 Data 40 hoje 40 41 41 41 125 gt 125 saleamount 41 13 No entanto, quando você considera que haverá 30 milhões Registros de vendas no documento, você pode antecipar um gráfico de carregamento muito lento. Embora a expressão possa fornecer resultados precisos, a próxima decisão que você precisa fazer é: Posso e devo mover isso para o script de carga. Por que seus usuários aguardam os dados que podem ser processados ​​no script de carga? Aqui estão os passos que levamos para Mova essa expressão para o script de carga, o que aumentou a velocidade do processamento de documentos quase 5 vezes. Let8217s começam com uma tabela de registros de vendas: para este exemplo, suponha que a tarefa seja mostrar, para cada cliente, a média do valor de vendas de 14 dias anterior. O primeiro passo é criar uma chave nesse campo, para que possamos gravar novamente. Uma vez que procuramos agregar por cliente e data, a chave lógica seria uma chave concatenada de nome de usuário e saledado. Isso pode ser feito adicionando a seguinte coluna à tabela: customername amp amp date 40 saledate. MM DD YYYY 41 como customerdatekey A próxima coisa que precisamos fazer é criar uma tabela de calendário com as datas necessárias para calcular uma média móvel de 12 dias para cada registro na tabela de vendas. Isso pode ser realizado com o seguinte código: cria uma tabela temporária com datas distintas carregadas de Sale LOAD date 40 fieldvalue 40 saledate. Iterno 40 41 41 41 como tempdate AUTOGENERATE 1 QUANDO len 40 fieldvalue 40 saledate. Iterno 40 41 41 41 Crie uma tabela com cada saledado em uma coluna e 14 datas anteriores em outra coluna RollingAverage. LOAD Distinct tempdate como tempdate. Data 40 tempdate iterno 40 41. MM DD YYYY 41 como linkdate RESIDENT RollingAveragetemp WHILE iterno 40 41 lt 14 Após a execução, ficamos com uma tabela que se parece com algo assim: Nota: uma data foi selecionada para mostrar que para cada saledado ( 612017), cada uma das 14 datas anteriores foi associada a ela. Uma vez que podemos estar vendendo para o mesmo cliente mais de uma vez em um dia, precisaremos calcular a média diária. Isso pode ser realizado com o seguinte código: dailyaverage. LOAD username personalizado como tempcustomername. Totaliza 40 saleamount 41 como tempdailysaleamount. Data de 40 saledados. MM DD YYYY 41 como o grupo de vendas RESIDENT do tempoaledate por nome de usuário. Saledate Você juntará o seu calendário para a sua tabela diária com o seguinte código: Junte-se a 40 calctemp 41 LOAD residente RollingAverage O próximo passo é recriar seu campo de chave, usando a data do link: junção esquerda 40 calctemp 41 LOAD modkey. Linkdate. Custname amp amp amp amp linkdate como linkkey residente calctemp Agora, você juntará o campo totalsales para o calctemp, fora da ligação que você acabou de fazer: LEFT JOIN 40 calctemp 41 LOAD tempdailysaleamount como totalsales. Tempcustomername amp amp data 40 tempsaledate. MMDDYYYY 41 como linkkey Resident dailyaverage O que acabamos de realizar é para cada cliente, para cada data, criamos e vincularam os 14 campos-chave que irão rolar para ser a média móvel de 14 dias. Isso pode ser completado com o seguinte código: tabela de vendas. LOAD avg 40 totalsales 41 como rollingaverage. Custname como nome de usuário personalizado. Linkkey como grupo de rede residente do linkkey por custname. Modkey Você ficará com uma tabela que inclua sua média balanceada calculada de 14 dias, que pode ser incorporada de volta à sua tabela de venda original. Trazer esse campo calculado para o script de carga causará uma carga mais longa, mas vale bem quanto mais responsivo o documento se tornará. Sobre o livro de receitas do Joe FuscoQlikView para desenvolvedores Criando um gráfico de controle usando os padrões de Controle de alcance móvel são criados muito rapidamente usando uma função de desvio padrão para limites de controle. No entanto, Donald Wheeler. Autor de Understanding Variation: The Key to Managing Chaos. SPC Press, Inc. Sugere que há problemas com desvio padrão ou erro padrão devido a hipóteses sobre a homogeneidade dos dados. Em vez disso, ele prefere um método usando uma média móvel em um período arbitrário. Nesta receita, vamos usar o mesmo conjunto de dados de precipitação que a receita anterior, Criando um gráfico de controle estatístico usando desvio padrão. Para ver como os dados de chuva para Heathrow variam ao longo do tempo. Em vez de usar o desvio padrão dos dados para derivar os limites de controle, nós faremos. O melhor conteúdo para sua carreira. Descubra uma aprendizagem ilimitada sob demanda por cerca de 1 dia. Recomendado para você Criando um gráfico de Mudança de alcance 5. Codificação Avançada Copyright copie 2017 Safari Books Online. Esse fórum parece estar mais voltado para mais problemas de programação, mas eu estaria interessado se alguém observasse a questão lógica no link abaixo. Meu problema é como calcular o total de 12 meses anterior usando o calendário já definido. Eu encontrei muito poucos exemplos disso na comunidade QV. Consulte o link abaixo para obter mais detalhes. Eu estaria disposto a olhar para uma solução de script SQL ou QV. Nosso ano fiscal é de novembro a outubro. Gostaria que o usuário final selecionasse Ano e um gráfico para exibir a última margem de 12 meses. Tive problemas para que meu total se acumulasse nos meses anteriores. Meu objetivo seria que pareça semelhante à coluna Rolling 12 Month Total - GP na imagem de imagem do Excel, codificada manualmente. (Veja o link do QV para a captura de tela) Equação da Margem Rolante: minha tentativa de usar a Análise de Conjunto para fazer uma equação de avg de rotação MasterCalendar: isso usa masterdate para conectar itens juntos. Este é um calendário fiscal difícil de juntar com o avg FiscalCalander. Isso define o nosso ano fiscal. Obrigado por tomar o tempo para analisar esta questão. Pediu 12 de junho 12 às 13:48 Espero que isso contenha informações suficientes ndash octopusguy 12 de junho às 15:04 A solução não está no calendário. Você deve criar uma tabela dinâmica entre seu calendário e a tabela de fato. Nesta tabela dinâmica você tem 2 tipos. DIRECTA E CRUZADA. Para o tipo DIRECT, uma linha na tabela de fato está vinculada à data no calendário Para o tipo CROSSING, uma tabela de linha na verdade está vinculada a todas as datas dos 12 meses futuros no calendário. Então, no Qlikview, você usa o tipo DIRECT o tempo todo, exceto quando você deseja apresentar para cada mês o total dos últimos 12 meses. Nesse caso, você usa CROSSING porque todas as linhas estão ligadas às datas dos 12 meses futuros, então isso significa (ponto de vista invertido) que um mês está vinculado a todos os dados dos últimos 12 meses.

No comments:

Post a Comment