Moving Average Oracle Sql
Se você vir essa mensagem, seu navegador desativou ou não aceita JavaScript. Para usar os recursos completos deste sistema de ajuda, como a pesquisa, seu navegador deve ter o suporte a JavaScript habilitado. Médias móveis ponderadas com médias móveis simples, cada valor de dados no quotwindowquot em que o cálculo é realizado tem uma significância ou peso iguais. É frequentemente o caso, especialmente na análise de dados de preços financeiros, que mais dados cronologicamente recentes devem ter um peso maior. Nesses casos, a média média móvel ponderada (ou a média móvel exponencial - veja o tópico a seguir) é muitas vezes preferida. Considere a mesma tabela de valores de dados de vendas por doze meses: para calcular uma média móvel ponderada: Calcule quantos intervalos de dados estão participando do cálculo da Média Mover (ou seja, o tamanho do cálculo quotwindowquot). Se a janela de cálculo for dita 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 de médias avançadas descrito acima. Para ilustrar estas etapas, considere se é necessária uma média móvel de vendas de 3 meses em dezembro (usando a tabela acima de valores de vendas). O termo quot3-monthquot implica que o quotwindowquot de cálculo é 3, portanto, o algoritmo de cálculo da média móvel ponderada para este caso deve ser: Ou, se uma Média de Movimento Ponderada de 3 meses fosse avaliada em toda a gama original de dados, os resultados seriam : 3 meses de média de movimento ponderado Esta é uma questão Evergreen Joe Celko. Ignoro qual plataforma DBMS é usada. Mas, em qualquer caso, Joe conseguiu responder há mais de 10 anos com o SQL padrão. Citação de Joe Celko SQL Puzzles and Answers: Essa última tentativa de 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 Desmoralize o banco de dados. No entanto, se os dados históricos que estão sendo registrados não mudem e o cálculo da média móvel é caro, você pode considerar usar a abordagem da coluna. Consulta SQL Puzzle: por todos os meios uniforme. Você apenas joga no balde de peso apropriado dependendo da distância do ponto de tempo atual. Por exemplo, quottake weight1 para datapoints dentro de 24 horas a partir do ponto de dados atual0.5 para pontos de dados dentro de 48hrsquot. Esse caso é importante quantos pontos de dados consecutivos (como 6:12 e 11:48) estão distantes um do outro. Um caso de uso que eu posso pensar seria uma tentativa de alisar o histograma sempre que os pontos de dados não forem suficientemente densos. 22:22 Não estou certo de que seu resultado esperado (saída) mostre uma média simples em movimento simples (rolando) por 3 dias. Como, por exemplo, o primeiro triplo dos números, por definição, dá: mas você espera 4.360 e é confuso. No entanto, sugiro a seguinte solução, que usa o AVG de função de janela. Essa abordagem é muito mais eficiente (clara e menos intensiva em recursos) do que a SELF-JOIN introduzida 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 filas, onde 3 Day Moving Average não tem sentido. Respondeu 23 de fevereiro às 13:12. Podemos aplicar o método de junção externa suja esquerda de Joe Celkos (como citado acima por Diego Scaravaggi) para responder a pergunta como foi feita. Gera a saída solicitada: respondeu Jan 9 às 0:33 Sua resposta 2016 Stack Exchange, Inc
Comments
Post a Comment