Moving average sql server 2018


Estou tentando calcular uma média móvel de 3 meses agrupada por região e mês, como em Nota que o mês é expandido para fins ilustrativos, a Id realmente espera que o resultado apenas diga um único mês. Agora eu posso fazer isso criando um agrupamento CTE por região e mês, depois juntando-se a ele algumas vezes como, mas isso é feio, imagine se você tivesse que fazer uma média móvel de 6 meses ou média móvel de 12 meses Estou tentando usar o t - Funções analíticas sql 2017, especificamente a opção RANGE. Eu usei ROWS anteriores antes, mas nunca alcancei. O que eu tentei foi Mas eu recebo um erro de sintaxe: Msg 8120, Nível 16, Estado 1, coluna 2 da linha dbo. vwscorebyregion. month não é válido na lista de seleção porque não está contido em uma função agregada ou na cláusula GROUP BY. Claramente, estou fazendo algo bobo, mas não sei o que. Perguntou Mar 23 13 às 7:54 marcs 465k 9679 95 9679 892 9679 1061 você precisa quotmovequot esse grupo na função de janela: avg (var) over (partição por região ou por.) Ndash ahorsewithnoname 23 de março 13 às 8:41 Em primeiro lugar, a GAMA é suportada somente com delimitadores de quadro UNBOUNDED e CURRENT ROW, não pode ser usado com N PRECEDING ou N SIGUIENTE. A partir do seu título, parece com a sua vontade de obter 3 meses de rotação avg (sliding avg), então você melhor usar ROWS usando ROWS (Isto é mais provável o que você precisa) SQl Fiddle Demo Nota: Usando GAMA: Nota: Usando RANGE você tem Para controlar a largura da partição, uma vez que você deseja agg por 3 meses, e o alcance não suporta N PRECEDING e N SIGUIENTE. Ele só suporta o seguinte: respondeu 23 de março 13 às 9: 39 Eu leio a discussão que você mencionou. É aplicável ao PostgreSQL, uma vez que é permitido criar uma função agregada definida pelo usuário usando SQL no PostgreSQL, mas não é permitido no SQL Server. O uso de CTE recursivo é uma maneira viável no SQL Server, mas percebo que a maneira CTE pode resultar em mais varredura de tabela do que as funções da janela. Então eu faço essa publicação para perguntar se é possível calcular a média móvel exponencial usando a função de janela do SQL Server 2017, como calcular a média móvel simples. Ndash xiagao1982 14 de abril de 13 às 2:53 Primeiro, você calcula o EMA (SMA (x)) em vez do EMA (x). Em segundo lugar, seu quotmoothing constantquot é, na verdade, o valor beta da minha fórmula, e não o alfa. Com essas duas mudanças, o SQLFiddle parece assim: sqlfiddle6191921 No entanto, ainda existe uma pequena diferença entre o resultado real e o resultado esperado. Eu voltaria e veria se a sua definição EMA corresponde ao que eu conheço. Ndash Sebastian Meine 7 de maio 13 às 13:46 Eu simplesmente olhei para o formulário na planilha que você anexou e está fora da definição EMA padrão. Minha fórmula calcula a média móvel exponencial das últimas dez linhas. A planilha calcula primeiro a média padrão nas últimas dez linhas e, em seguida, a média móvel ponderada exponencialmente irrestrita em todas as médias. Isso segue o formulário aqui: en. wikipedia. orgwikiEWMAchart ndash Sebastian Meine 7 de maio às 13:52

Comments

Popular Posts