How To Calcul Moving Average In Sql


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. Joe Celko SQL Puzzles and Answers citação: 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ê simplesmente 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 am e 11:48 pm) 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 são suficientemente densos. 22:22 Não tenho certeza se o resultado esperado (saída) mostra uma média simples de movimentação simples (rolando) durante 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 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 linhas, 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 conforme foi solicitado. Gera o resultado solicitado: respondeu Jan 9 16 às 0:33 Sua resposta 2017 Stack Exchange, Inc Estou trabalhando com o SQL Server 2008 R2, tentando calcular uma média móvel. Para cada registro na minha opinião, gostaria de coletar os valores dos 250 registros anteriores e, em seguida, calcular a média para esta seleção. As minhas colunas de exibição são as seguintes: TransactionID é exclusivo. Para cada ID de transação. Gostaria de calcular a média do valor da coluna, em relação aos 250 registros anteriores. Então, para TransactionID 300, colete todos os valores das 250 linhas anteriores (a exibição é ordenada por TransactionID) e, em seguida, na coluna MovAvg, escreva o resultado da média desses valores. Estou procurando coletar dados dentro de uma variedade de registros. Solicitado 28 de outubro 14 em 20: 58SQL Server T-SQL Code para calcular uma média móvel Por: Dallas Snider Leia comentários Dicas relacionadas: Mais funções - UDF definido pelo usuário Como posso alisar os dados em uma coluna com uma média móvel em T-SQL Você pode percorrer um exemplo no SQL Server com o código T-SQL Como podemos validar os resultados Os dados da série temporária podem ser inerentemente ruidosos e uma boa maneira de suavizar os dados é calcular uma média móvel. Há várias maneiras de calcular uma média móvel em T-SQL, mas nesta dica, vamos olhar para uma maneira de calcular uma média móvel que define a janela de média x número de linhas atrás e x número de linhas à frente da corrente Linha de dados. A vantagem disso é que não há atraso no valor médio retornado e o valor médio móvel está na mesma linha com seu valor atual. Comece por criar uma tabela e carregar alguns dados usando o T-SQL abaixo. Temos 361 pontos de dados que criam uma onda de seno ruidosa. Depois de carregar os dados, vamos executar o seguinte código T-SQL para selecionar todas as colunas juntamente com o valor médio móvel. No código abaixo, o tamanho da janela média móvel é 15 (7 linhas precedendo a linha atual, mais a linha atual, mais as 7 linhas seguintes). A média móvel da coluna DataValue é retornada como a coluna MovingAverageWindowSize15. A cláusula ORDER BY é extremamente importante para manter os dados na ordem ordenada apropriada. Podemos copiar e colar os resultados no Excel para validar o cálculo está correto. Na imagem abaixo, a janela começa na célula C3 e termina em C17. A média móvel calculada pelo T-SQL nesta dica aparece na célula D10. A média calculada pelo Excel está na parte inferior e é igual ao valor em D10. Na figura abaixo, podemos ver os valores de dados originais plotados em azul com a média móvel plotada em vermelho. Próximas etapas Ajuste o tamanho da janela da média móvel para ver como o gráfico muda. Além disso, não se esqueça de verificar essas outras dicas sobre T-SQL de mssqltips: Última atualização: 382016

Comments