Sql 12 meses de média móvel no Brasil
Eu tenho uma tabela de produção que contém a seguinte estrutura: Eu tenho dados para cada representante de 112017 a 812017. O que eu quero ser capaz de fazer é criar uma média móvel de 12 meses começando 112017 para cada representante, da seguinte forma: onde cada linha representa A média móvel de 12 meses para o referido representante em determinado momento. Eu encontrei alguns exemplos que estavam vagamente perto e eu tentei-los sem sucesso. Parece que a adição de um grupo por componente rep é a principal saída de outros exemplos. Isso é quase tão longe quanto eu tenho: Essa consulta parece puxar uma média geral ou soma, uma vez que não há agrupamento na subconsulta correlacionada. Quando tento agrupar por, recebo um erro que só pode retornar no máximo uma linha. Perguntou Oct 10 13 em 14: 47This é uma pergunta Evergreen Joe Celko. Eu ignoro qual plataforma DBMS é usada. Mas, em qualquer caso, Joe foi capaz de responder há mais de 10 anos com o SQL padrão. A tentativa de última atualização sugere que poderíamos usar o predicado para construir uma consulta que nos daria uma média móvel: A coluna extra ou a abordagem de consulta melhor A consulta é tecnicamente melhor porque a abordagem UPDATE Desnormalizar o banco de dados. No entanto, se os dados históricos que estão sendo gravados não vai mudar ea computação da média móvel é cara, você pode considerar usar a abordagem de coluna. SQL consulta Quebra-cabeça: por todos os meios uniforme. Você joga apenas para o balde de peso apropriado, dependendo da distância do ponto de tempo atual. Por exemplo quottake weight1 para datapoints dentro de 24hrs de datapoint atual weight0.5 para datapoints dentro de 48hrsquot. Esse caso importa quanto pontos de dados consecutivos (como 6:12 am e 11:48 pm) estão distantes uns dos outros Um caso de uso que eu posso pensar seria uma tentativa de suavizar o histograma onde quer que os pontos de dados não são densos o suficiente ndash msciwoj May 27 15 at 22:22 Eu não tenho certeza que seu resultado esperado (saída) mostra clássico simples movendo (rolando) média de 3 dias. Porque, por exemplo, o primeiro triplo de números por definição dá: mas você espera 4.360 e sua confusão. No entanto, sugiro a seguinte solução, que usa a função de janela AVG. Essa abordagem é muito mais eficiente (clara e menos intensiva em recursos) do que o SELF-JOIN introduzido em outras respostas (e estou surpreso que ninguém tenha dado uma solução melhor). Você vê que o AVG está envolvido com o caso quando rownum gt p. days, em seguida, para forçar NULL s nas primeiras linhas, onde 3 dias Moving Average é sem sentido. Respondeu Feb 23 16 at 13:12 Podemos aplicar Joe Celkos suja deixada externa juntar método (como citado acima por Diego Scaravaggi) para responder à pergunta como foi perguntado. Gera a saída solicitada: respondida Jan 9 16 at 0:33 Sua resposta 2017 Stack Exchange, Inc Se você vir esta mensagem, seu navegador desativou ou não suporta JavaScript. Para usar os recursos completos deste sistema de ajuda, como a pesquisa, o navegador deve ter o suporte JavaScript ativado. Médias Móveis Ponderadas Com Médias Móveis Simples, cada valor de dados na quotwindow em que o cálculo é executado recebe um significado ou peso igual. É freqüentemente o caso, especialmente na análise de dados de preços financeiros, que mais dados cronologicamente recentes devem ter um peso maior. Nestes casos, a funcionalidade de Média Móvel Ponderada (ou Média Móvel Exponencial - consulte o tópico seguinte) é frequentemente preferida. Considere a mesma tabela de valores de dados de Vendas para doze meses: Para calcular uma Média Móvel Ponderada: Calcule quantos intervalos de dados estão participando no cálculo da Média Móvel (ou seja, o tamanho do cálculo quotwindowquot). Se a janela de cálculo é dita ser n, então o valor de dados mais recente na janela é multiplicado por n, o próximo mais recente multiplicado por n-1, o valor anterior ao multiplicado por n-2 e assim por diante para todos os valores na janela. Divida a soma de todos os valores multiplicados pela soma dos pesos para dar a Média Móvel Ponderada sobre essa janela. Coloque o valor da Média Móvel Ponderada em uma nova coluna de acordo com o posicionamento das médias de arrasto descrito acima. Para ilustrar essas etapas, considere se uma Média Móvel Ponderada de 3 meses de Vendas em dezembro é necessária (usando a tabela acima de valores de Vendas). O termo quot3-mês implica que o cálculo quotwindowquot é 3, portanto, o algoritmo de cálculo da Média Móvel Ponderada para este caso deve ser: Ou, se uma Média Móvel Ponderada de 3 meses foi avaliada em toda a gama original de dados, os resultados seriam : Média móvel ponderada de 3 meses
Comments
Post a Comment