EXEMPLO: funções Rolling

Neste exemplo, descrevemos como usar as funções de cálculo continuo:

  • ROLLINGSUM: calcula uma soma contínua de uma janela de linhas antes e depois da linha atual. Consulte Função ROLLINGSUM.
  • ROLLINGAVERAGE: calcula uma média contínua a partir de uma janela de linhas antes e depois da linha atual. Consulte Função ROLLINGAVERAGE.
  • ROWNUMBER: calcula o número de cada linha, conforme determinado pela coluna de ordenação. Consulte Função ROWNUMBER.

O conjunto a seguir contém dados sobre vendas no último trimestre do ano.

Origem:

DateSales
02/10/16200
09/10/16500
16/10/16350
23/10/16400
30/10/16190
06/11/16550
13/11/16610
20/11/16480
27/11/16660
04/12/16690
11/12/16810
18/12/16950
25/12/161.020
01/01/17680


Transformação:

Primeiro, mantenha as informações da linha como uma coluna separada. Uma vez que os dados já foram ordenados pela coluna Date, use o seguinte comando:

window value:ROWNUMBER() order:Date

Mude o nome dessa coluna para rowId por semana do trimestre.

Agora, extraia informações de mês e semana dos valores de Date. Para derivar o valor do mês:

derive type:single value:MONTH(Date) as:'Month'

Para derivar o valor do trimestre:

derive type:single value:(1 + FLOOR(((month-1)/3))) as:'QTR'

Para derivar o valor de semana do trimestre:

window value:ROWNUMBER() order:Date group:QTR

Renomeie essa coluna como WOQ (semana do trimestre).

Para derivar o valor de semana do mês:

window value:ROWNUMBER() group:Month order:Date

Renomeie essa coluna como WOM (semana do mês).

Agora, execute os cálculos contínuos. Para calcular o total contínuo de vendas, use o comando a seguir:

window value: ROLLINGSUM(Sales, -1, 0) order: Date group:QTR

O parâmetro -1 é usado no cálculo acima para reunir a soma contínua de todas as linhas de dados, da atual para a primeira. Observe o uso da coluna QTR para agrupamento, o que move o valor de 01/01/2017 para o próprio intervalo de cálculo. Isso é opcional, conforme a preferência.

Renomeie essa coluna como QTD (acumulado no trimestre). Agora, gere uma coluna semelhante para calcular a média contínua das vendas semanais no trimestre:

window value: ROUND(ROLLINGAVERAGE(Sales, -1, 0)) order: Date group:QTR

Com a função ROLLINGAVERAGE, é possível calcular valores fracionários e, por isso, ela é envolvida na função ROUND para melhorar a organização. Renomeie essa coluna como avgWeekByQuarter.

Resultados:

Quando as colunas desnecessárias são descartadas e alguma reordenação é aplicada, o conjunto de dados fica assim:

DateWOQSalesQTDavgWeekByQuarter
02/10/161200200200
09/10/162500700350
16/10/1633501.050350
23/10/1644001.450363
30/10/1651901.640328
06/11/1665502.190365
13/11/1676102.800400
20/11/1684803.280410
27/11/1696603.940438
04/12/16106904.630463
11/12/16118105.440495
18/12/16129506.390533
25/12/16131.0207.410570
01/01/171680680680


Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.