Thursday 10 August 2017

Ms Access Moving Average


Eu tenho uma produção de tabela que contém a seguinte estrutura: Eu tenho dados para cada representante de 1 1 2011 a 8 1 2013. O que eu quero ser capaz de fazer é criar uma média móvel de 12 meses começando 1 1 2012 por cada representante, como Segue: onde cada linha representa a média móvel de 12 meses para o referido representante no horário indicado. Encontrei alguns exemplos que estavam vagamente próximos e os tentei sem sucesso. Parece que a adição de um grupo por componente representante é a principal saída de outros exemplos. Isso é tão longe quanto eu obtive: Essa consulta parece puxar uma média geral ou uma soma, uma vez que não há agrupamento na subconsulta correlacionada. Quando eu tento agrupar, recebo um erro que só pode retornar no máximo uma linha. Perguntou 10 de outubro 13 às 14: 47 Esta é uma pergunta 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

No comments:

Post a Comment