Saturday 12 August 2017

T Sql Moving Average Function


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 2012, 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 464k 9679 95 9679 889 9679 1060 você precisa querer que esse grupo entre na função de janela: avg (var) over (partição por região ou por.) Ndash ahorre com nenhum nome 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 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 o TransactionID 300, colete todos os valores das 250 linhas anteriores (a exibição é ordenada, decrescente por TransactionID) e depois na coluna MovAvg escreva o resultado da média desses valores. Estou procurando coletar dados em uma variedade de registros. Pediu 28 de outubro às 20:58

No comments:

Post a Comment