Eu tenho uma tabela de uso horário do produto quantas vezes o produto é usado data. Likewise, eu tenho os dados de uso para 4 produtos diferentes ProductId de 1 a 4 armazenados para cada hora na tabela productusage Como você pode imaginar, ele está crescendo constantemente Como o processo noturno ETL despeja os dados para todo o dia anterior Se um produto não é usado em qualquer hora de um dia, o registro para essa hora ganhou t aparecer nesta tabela Da mesma forma, se um produto não é usado para o dia inteiro, Não haverá nenhum registro para esse dia na tabela que eu preciso para gerar um relatório que dá uso diário e 7 dias rolando média. E assim por diante estou planejando criar uma Visualização Indexada no SQL Server 2014 Você pode pensar em um eficiente SQL para fazer this. asked Sep 18 14 at 21 08.Previously nós discutimos como escrever médias rolando em Postgres Por demanda popular estamos re mostrando como fazer o mesmo em MySQL e SQL Server. We ll cobre como anotar gráficos barulhentos Como este. Com uma linha média precedente de 7 dias como th É. A Grande Idea. O nosso primeiro gráfico acima é bastante ruidoso e difícil de obter informações úteis de Nós podemos suavizar-lo por traçar uma média de 7 dias em cima dos dados subjacentes Isso pode ser feito com funções de janela, auto-junta, Ou subconsultas correlacionadas - vamos cobrir as duas primeiras. Vamos começar com uma média anterior, o que significa que o ponto médio no dia 7 do mês é a média dos primeiros sete dias. Visualmente isso desloca os picos no gráfico para o Direita, como um pico grande é calculada a média durante os sete dias seguintes. Primeiro, crie uma tabela de contagem intermediária. Queremos calcular uma média sobre o total de inscrições para cada dia Assumindo que temos uma tabela de usuários típicos com uma linha por novo usuário e um Timestamp createdat, podemos criar o nosso agregado nossa tabela de inscrições como so. In PostgreSQL e SQL Server você pode usar isso como um CTE No MySQL você pode salvá-lo como uma tabela temporária. Postgres Rolling Average. Fortunately Postgres tem funções de janela que são as mais simples Maneira de calcular um aver Esta consulta assume que as datas não têm lacunas A consulta é a média sobre as últimas sete linhas, não as últimas sete datas Se seus dados têm lacunas, preenchê-los com generateseries ou junção contra uma tabela com data densa rows. MySQL Rolling Average. MySQL não tem funções de janela, mas podemos fazer uma computação semelhante usando auto-junções Para cada linha em nossa tabela de contagem, juntamos todas as linhas que estavam nos últimos sete dias e tomamos a média. Esta consulta trata automaticamente as lacunas de data, como Estamos olhando para linhas dentro de um intervalo de datas, em vez de as N linhas anteriores. SQL Server Rolling Average. SQL Server tem funções de janela, de modo computando a média de rolamento pode ser feito no estilo Postgres ou estilo MySQL. Para simplificar, estamos usando o MySQL versão com um auto join. This é conceitualmente o mesmo que no MySQL As únicas traduções são a função dateadd e explicitamente chamado grupo por colunas. Outras médias. We focado na média de sete dias de fuga neste post Se quiséssemos olhar A média de 7 dias, é tão simples como classificar as datas na outra direção Se queríamos olhar para uma média centrada, que d use. Postgres linhas entre 3 precedente e 3 following. MySql entre - 3 e 3 em MySQL. SQL Server entre dateadd dia, -3 e dateadd dia, 3.Moving Average - MA. BREAKING DOWN Moving Average - MA. As um exemplo de SMA, considere uma segurança com os seguintes preços de fechamento durante 15 days. Week 1 5 dias 20 , 22, 24, 25, 23.Week 2 5 dias 26, 28, 26, 29, 27.Week 3 5 dias 28, 30, 27, 29, 28.A MA de 10 dias seria média dos preços de fechamento para o Primeiros 10 dias como o primeiro ponto de dados O ponto de dados seguinte iria cair o preço mais cedo, adicione o preço no dia 11 e tomar a média, e assim por diante como mostrado abaixo. Como observado anteriormente, MAs atraso ação de preço atual porque são baseados em Os preços do passado mais longo o período de tempo para o MA, o maior o atraso Assim, um MA de 200 dias terá um grau muito maior de atraso do que um MA de 20 dias, porque ele contém preços para os últimos 200 dias A duração da MA a ser utilizada depende dos objetivos de negociação, com MAs mais curtos usados para negociação de curto prazo e MAs de longo prazo mais adequados para investidores de longo prazo O MA de 200 dias é amplamente seguido por investidores e comerciantes, com pausas acima E abaixo desta média móvel consideradas importantes sinais de negociação. AMs também transmitir importantes sinais de negociação por conta própria, ou quando duas medias atravessam um aumento MA indica que a segurança está em uma tendência de alta, enquanto um declínio MA indica que está em uma tendência de baixa Da mesma forma, o impulso ascendente é confirmado com um crossover de alta que ocorre quando um MA de curto prazo cruza acima de um MA de longo prazo Momento de baixa é confirmado com um crossover de baixa, que ocorre quando um MA de curto prazo cruza abaixo de um MA de longo prazo.
No comments:
Post a Comment