Função NEXT

Extrai o valor de uma coluna que é um número especificado de linhas depois do valor atual.
  • A linha usada para extrair um valor é determinada pela ordem em que as linhas são organizadas no momento em que a transformação é executada. Se você estiver trabalhando em uma amostra gerada aleatoriamente do conjunto de dados, os valores que você vê para esta função poderão não corresponder aos valores que são gerados no conjunto de dados completo durante a execução do job.

  • Se o próximo valor estiver ausente ou for nulo, esta função gerará um valor ausente.
  • Você pode usar os parâmetros group e order para definir os grupos de registros e a ordem desses registros aos quais a transformação será aplicada.
  • Essa função funciona com as seguintes transformações:

Uso básico

window value:NEXT(myNumber, 1) order:Date

Resultado: é gerada a nova coluna, que contém o valor da linha na coluna myNumber imediatamente posterior à linha atual, quando o conjunto de dados é ordenado por Date.

Sintaxe

window value:NEXT(col_ref, k_integer) order: order_col [group: group_col]

ArgumentoObrigatório?Tipo de dadosDescrição
col_refSstringNome da coluna cujos valores são aplicados à função
k_integerSInteiro (positivo)Número de linhas após a atual para extrair o valor

Para saber mais informações sobre os parâmetros order e group, consulte Transformação Window.

Para mais informações sobre os padrões de sintaxe, consulte Notas de sintaxe da documentação da linguagem.

col_ref

Nome da coluna cujos valores são usados para extrair o valor, que é k-integer depois do atual.

  • Não há compatibilidade com várias colunas e caracteres curinga.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString (referência de coluna)myColumn

k_integer

Número inteiro que representa o número de linhas depois da atual, de onde extrair o valor.

  • O valor precisa ser um número inteiro positivo. Para valores negativos, consulte a Função PREV.
  • k=1 representa o valor da linha imediatamente posterior.
  • Se k for maior ou igual ao número de valores na coluna, todos os valores na coluna gerada estarão ausentes. Se um parâmetro group for aplicado, ele não deverá ser superior ao número máximo de linhas nos grupos.
  • Se o intervalo fornecido para a função exceder os limites do conjunto de dados, a função gerará um valor nulo.
  • Se o intervalo da função for válido, mas incluir valores ausentes, a função gerará um valor ausente e não nulo.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimNúmero inteiro4

Exemplos

Exemplo: examinar o histórico de pedidos anteriores

O conjunto de dados a seguir contém informações sobre pedidos nos últimos 12 meses. O objetivo é comparar a média do mês atual com o trimestre anterior.

Origem:

DataValor
31/12/15118
30/11/156
31/10/15443
30/09/15785
31/08/1577
31/07/15606
30/06/15421
31/05/15763
30/04/15305
31/03/15824
28/02/15135
31/01/15523

Transformação:

Com a função ROLLINGAVERAGE, gere uma coluna contendo a média contínua do mês atual e dos dois meses anteriores:

window value: ROLLINGAVERAGE(Amount, 3, 0) order: -Date

Observe o sinal do segundo parâmetro e do parâmetro order. A classificação está na ordem inversa do parâmetro Date, que preserva a ordem de classificação atual. Consequentemente, o segundo parâmetro, que identifica o número de linhas a usar no cálculo, precisa ser positivo para capturar os meses anteriores.

Tecnicamente, esse cálculo não captura o trimestre anterior, já que inclui o trimestre atual. Você pode usar a coluna a seguir para capturar a média contínua do mês anterior, que depois se torna a verdadeira média contínua do trimestre anterior. A coluna window refere-se ao nome da coluna gerada a partir da etapa anterior:

window value: NEXT(window, 1) order: -Date

Observe que o parâmetro "order" precisa ser preservado. Esta nova coluna, window1, contém sua média contínua trimestral anterior:

rename col:window1 to:'Amount_PriorQtr'

Reformate esse valor numérico:

set col:Amount_PriorQtr value:NUMFORMAT(Amount_PriorQtr, '###.00')

Use a transformação abaixo para calcular a variação líquida. Esta fórmula calcula a variação como uma porcentagem do trimestre anterior e depois a formata como uma porcentagem de dois dígitos.

derive type:single value:NUMFORMAT(((Amount - Amount_PriorQtr) / Amount_PriorQtr) * 100, '##.##') as:'NetChangePct_PriorQtr'

Resultados:

OBSERVAÇÃO: há valores calculados para Amount_PriorQtr referentes a fevereiro e março. Esses valores não são considerados nos três meses completos porque os dados não estão presentes. O valor de janeiro não existe porque não há dados que o precedem.

DataValorAmount_PriorQtrNetChangePct_PriorQtr
31/12/15118411,33-71,31
30/11/156435,00-98,62
31/10/15443489,33-9,47
30/09/15785368,00113,32
31/08/1577596,67-87,10
31/07/15606496,3322,10
30/06/15421630,67-33,25
31/05/15763421,3381,09
30/04/15305494,00-38,26
31/03/15824329,00150,46
28/02/15135523,00-.74,19
31/01/15523

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.