Thursday, 24 August 2017

Sql Moving Average Over


Estou tentando calcular de forma eficiente (usando o SQL Server 2008) a média móvel do ProductCount durante um período de 24 horas. Para cada linha na tabela Product, Id gostaria de saber qual era a média de ProductCount (para os produtos fornecidos) nas últimas 24 horas. Um problema com nossos dados é que nem todas as horas de datas estão presentes (veja o exemplo abaixo). Se um TimeStamp estiver faltando, significa que o ProductCount era 0. Eu tenho uma tabela com milhões ou linhas com uma Data, Produto e Contagem. Abaixo está um exemplo simplificado dos dados com os quais tenho que lidar. Qualquer idéia de como conseguir isso EDITAR. Outro dado que eu preciso é o MIN e MAX ProductCount para o período (ou seja, 24h). Computar o MIN MAX é um pouco mais complicado por causa dos valores em falta. 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